列举SQLServer几个基本的函数的应用.docx

合集下载

sqlserve 常用函数

sqlserve 常用函数

sqlserve 常用函数
1. `SUM()`: 用于计算指定列的总和。

2. `AVG()`: 用于计算指定列的平均值。

3. `COUNT()`: 用于计算指定列的行数或某个值的出现次数。

4. `MAX()`: 用于找出指定列中的最大值。

5. `MIN()`: 用于找出指定列中的最小值。

6. `GROUP BY`: 用于根据一个或多个列对结果进行分组。

7. `HAVING`: 用于在分组后对结果进行筛选。

8. `JOIN`: 用于将两个或多个表中的数据连接起来。

9. `WHERE`: 用于在查询结果中筛选满足条件的数据。

10. `ORDER BY`: 用于根据一个或多个列对结果进行排序。

11. `DISTINCT`: 用于返回唯一的、不重复的结果集。

12. `SUBSTRING`: 用于从字符串中提取子字符串。

13. `DATEPART`: 用于从日期或时间值中提取部分信息,例如年、月、日等。

14. `ISNULL`: 用于检查一个表达式是否为 NULL。

15. `COALESCE`: 用于替换 NULL 值。

这只是 SQL Server 中一些常用函数的一小部分示例。

SQL Server 还提供了许多其他函数,用于处理字符串、日期、数学计算、聚合等各种操作。

具体使用哪些函数取决于你的具体需求和数据操作。

sql server字符串函数

sql server字符串函数

sql server字符串函数SQL Server提供了许多字符串函数,这些函数可以用于处理和操作字符串。

下面是一些常用的SQL Server字符串函数:1. LEN() 函数:返回一个字符串的长度。

2. LEFT() 函数:返回一个字符串的左侧指定数量的字符。

3. RIGHT() 函数:返回一个字符串的右侧指定数量的字符。

4. SUBSTRING() 函数:返回一个字符串中从指定位置开始的指定长度的子串。

5. REPLACE() 函数:替换一个字符串中所有出现的指定子串为另一个子串。

6. UPPER() 函数:将一个字符串转换为大写。

7. LOWER() 函数:将一个字符串转换为小写。

8. LTRIM() 函数:去除一个字符串左侧的空格。

9. RTRIM() 函数:去除一个字符串右侧的空格。

10. CONCAT() 函数:将两个或多个字符串连接成一个新的字符串。

下面是这些函数在SQL Server中使用示例:-- LEN()函数示例SELECT LEN('Hello World') AS LengthOfHelloWorld;-- LEFT()函数示例SELECT LEFT('Hello World', 5) AS LeftFiveCharacters;-- RIGHT()函数示例SELECT RIGHT('Hello World', 5) AS RightFiveCharacters;-- SUBSTRING()函数示例SELECT SUBSTRING('Hello World', 7, 5) AS SubstringFromSevenToEleven;-- REPLACE()函数示例SELECT REPLACE('Hello World', 'World', 'SQL Server') AS ReplaceWorldWithSqlServer;-- UPPER()函数示例SELECT UPPER('Hello World') AS UpperCaseString;-- LOWER()函数示例SELECT LOWER('Hello World') AS LowerCaseString;-- LTRIM()函数示例SELECT LTRIM(' Hello World') AS TrimmedString;-- RTRIM()函数示例SELECT RTRIM('Hello World ') AS TrimmedString;-- CONCAT()函数示例SELECT CONCAT('Hello', ' ', 'World') AS ConcatenatedString;这些SQL Server字符串函数可以帮助您更轻松地处理和操作字符串。

sqlserver常用函数

sqlserver常用函数

sqlserver常用函数
SQLServer是一种关系型数据库管理系统,它提供了许多有用的函数来处理数据。

以下是一些常用的SQL Server函数:
1. SUBSTRING函数:用于返回一个字符串的子字符串。

2. LEN函数:用于返回一个字符串的长度。

3. REPLACE函数:用于将字符串中的指定字符或字符串替换为新的字符或字符串。

4. CHARINDEX函数:用于查找一个字符串中的子字符串的位置。

5. UPPER和LOWER函数:用于将字符串转换为大写或小写。

6. CAST和CONVERT函数:用于将一个数据类型转换为另一个数据类型。

7. GETDATE函数:用于返回当前系统日期和时间。

8. DATEPART函数:用于从日期或时间值中提取指定的部分(例如,年、月、日、小时、分钟或秒)。

9. DATEDIFF函数:用于计算两个日期之间的差异。

10. RANK和ROW_NUMBER函数:用于对查询结果进行排名和编号。

这些函数可以极大地方便SQL Server开发人员的工作,使他们能够更轻松地处理和管理数据。

- 1 -。

sqlserver 数学函数

sqlserver 数学函数

sqlserver 数学函数
SQLServer数学函数可以帮助我们执行各种数学计算和操作。

在使用SQLServer数学函数时,我们需要理解每个函数的用途和语法。

下面是一些常用的SQL Server数学函数:
1. ABS函数:返回一个数的绝对值。

2. CEILING函数:返回大于等于指定数字的最小整数。

3. FLOOR函数:返回小于等于指定数字的最大整数。

4. ROUND函数:将指定数字四舍五入为指定小数位数的数字。

5. SIGN函数:返回指定数字的符号。

如果数字为正数,则返回1;如果数字为负数,则返回-1;如果数字为0,则返回0。

6. SQRT函数:返回指定数字的平方根。

7. POWER函数:返回指定数字的指定幂次方值。

这些SQL Server数学函数可以帮助我们在数据库中执行各种数学计算和操作。

如果我们需要执行更复杂的计算,我们还可以使用其他函数和算法,例如三角函数、对数函数和指数函数等。

无论我们需要什么样的计算,SQL Server数学函数都可以为我们提供准确和高效的解决方案。

- 1 -。

sqlserver sql 函数的定义和使用

sqlserver sql 函数的定义和使用

sqlserver sql 函数的定义和使用SQL Server是一个关系数据库管理系统,它提供了大量的内置函数,也支持用户自定义函数。

这些函数可以帮助您更方便地处理和操作数据。

下面我会介绍SQL Server中函数的定义和使用。

1. 内置函数SQL Server提供了许多内置函数,这些函数可以直接在查询中使用。

例如:字符串函数:`LEN()`, `SUBSTRING()`, `CHAR()`, ...数值函数:`ABS()`, `CEILING()`, `FLOOR()`, ...日期和时间函数:`GETDATE()`, `DATEDIFF()`, `DATEADD()`, ...转换函数:`CAST()`, `CONVERT()`, ...聚合函数:`SUM()`, `AVG()`, `MAX()`, ...示例:```sqlSELECTLEN(Name) AS NameLength,UPPER(Name) AS UpperCaseName,GETDATE() AS CurrentDateFROM Employees;```2. 用户自定义函数 (UDF)除了内置函数,SQL Server还允许用户创建自定义函数。

这些函数可以返回一个值或者返回一个表。

标量函数 (Scalar Functions): 返回一个值。

表值函数 (Table-Valued Functions): 返回一个表。

定义:```sqlCREATE FUNCTION (parameter1 datatype, parameter2 datatype) RETURNS returndatatypeASBEGIN-- Your SQL code hereRETURN value; -- For scalar functions onlyEND;```使用:在查询中像使用内置函数一样使用UDF。

示例:假设我们有一个标量函数,用于返回员工的总薪水:```sqlCREATE FUNCTION (EmployeeID INT)RETURNS DECIMAL(10, 2)ASBEGINDECLARE TotalSalary DECIMAL(10, 2);SELECT TotalSalary = SUM(Salary) FROM Employees WHERE EmployeeID = EmployeeID;RETURN TotalSalary;END;```使用这个函数的查询:```sqlSELECT EmployeeID, (EmployeeID) AS TotalSalaryFROM Employees;```3. 注意事项:在使用自定义函数之前,确保它们已经在数据库中定义。

列举SQLServer几个基本的函数的应用.docx

列举SQLServer几个基本的函数的应用.docx

-聚合函数use pubsgoselect avg(distinct price) 一算平均数from titleswhere type=*business'gouse pubsgoselect max(ytd_sales) 一最大数from titlesgouse pubsgoselect min(ytd_sales)"最小数from titlesgouse pubsgoselect type,sum(price),sum(adva nee) —求和from titlesgroup by typeorder by typegouse pubsgoselect count(distinct city) 一求个数from authorsgouse pubsgoselect stdev(royalty) ■■返回给定表达式中所有值的统计标准偏差from titlesgouse pubsgoselect stdevp(royalty)-返回表达式中所有制的填充统计标准偏差from titles gouse pubsgoselect var(royalty)"返回所有值的统计方差from titlesgouse pubsgoselect varp(royalty)-返回所有值的填充的统计方差from titlesgo-数学函数select sin(23.45),atan(1.234),rand(),PI(),sign(-2.34) 一其中rand 是获得一个随机数-配置函数SELECT @@VERSION 一获取当前数据库版本SELECT @@LANGUAGE -当前语言-时间函数select getdate() as 'wawa_getdate' 一当前时间select getutcdate() as !wawa_getutcdate' 一获取utc 时间select day(getdate()) as 'wawa_day' 一取出天select month(getdate()) as 'wawa_month' 一取岀月select year(getdate()) as 'wawa_year' 一取出年select dateadd(d,3,getdate()) as wawa_dateadd •■力口三天,注意'd‘表示天,'m'表示月,yy表示年,下而一样select datediff(d,*2004-07-01 *,*2004-07-15') as wawa_datediff 一计算两个时间的差select datename(d,*2004-07-15!) as wawa_datename "取岀时间的某一部分select datepart(d,getdate()) as wawa_datepart 一取出时间的某一部分,和上面的那个差不多"字符串函数select ascii(123) as ,123',ascii('123') as ,H123m,ascii(,abc,) as H,abc M,一转换成ascii 码select char(123),char(321 ),char(-123) •■根据ascii 转换成字符select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc') 一转换大小写select str(123.45,6,1), str(123.45,2,2) 一把数值转换成字符串select ItrimC ”左边没有空格”')“去空格select rtrim(H,右边没有空格”’)-去空格select ltrim(rtrimC ”左右都没有空格” ’))••去空格select left(!sql server*,3),right('sql server*,6) 一取左或者取右use pubsselect au_lname,substring(au_fname,1,1) -取子串from authorsorder by aujnameselect charindex(*1237abc123def,2) -返回字符串中指定表达式的起始位置select patindex(*123','abc123def,),patindex(,%123%';abc123def) 一返回表达式中某模式第一次出现的起始位置select quotename(,abc','{,),quotename(,abc')"返回由指定字符扩住的字符吊select reverse(,abc'),reverse('上海')-颠倒字符串顺序select replace('abcdefghicdeVcde7xxxx')"返回呗替换了指定子串的字符串select space(5),space(-2)"系统函数select host_name() as ’host_name;host_id() as 'host_id;userjname() as'user name',user id() as 'user id',db name() as *db name*-变量的定义使用-声明局部变量declare @mycounter intdeclare @last_name varchar(30),@fname varchar(20),@state varchar(2) 一一下声明多个变量-给变量赋值use northwindgodeclare @firstnamevariable varchar(20),@regi on variable varchar(30)set @firstnamevariable=,anne, -可以用set,也可以用select给变量赋值,微软推荐用set,但select在选择一个值直接赋值时很有用set @regionvariableselect lastname,firstname,title -用声明并赋值过的变量构建一个Select语句并査询from employeeswhere firstname= @firstnamevariable or region=@regioinvariablego-全局变量select @@version "返回数据库版本select @@error -返回最后的一次脚本错课select @@identity -返回最后的一个自动增长列的id-while,break,continue 的使用-首先计算所有数的平均价格,如果低于30的话进入循环让所有的price翻倍,一里而又有个if来判断如果最大的单价还大于50的话,退出循环,否则继续循环, 知道最大单价大于50就break岀循环,呵呵,一我分析的应该对吧.use pubsgowhile (select avg(price) from titles) <$30beginupdate titlesset price=price*2select max(price) from titlesif(select max(price) from titles) >$50breakelsecontinueendprint 'too much for the marker to bear*-事务编程经典例子-begin transaction 是开始事务,commit transaction 是提交事务‘rollback transaction 是回滚事务-这个例子是先插入一条记录,如果岀现错课的话就回滚事务,也就是取消,并直接return(返回),如果没错的话就commit提交这个事务了哦-上而的那个return返回可以返回一个整数值,如果这个值是0的话就是执行的时候没出错,如果岀错了就是一个负数,一这个return也可以用在存储过程中,可用用exec @return_status= pro_name 来获取这个值use pubsgobegin tran mytraninsert into stores(stor_id,stor_name) values(,333',,my books1)goinsert into discounts(discounttype,stor_id J discount) valuesf 清仓甩卖79999\50.00)if @@error<>0beginrollback tran mytrmnprint'插入打折记录出错’returnendcommit tran mytran-事务处理的保存点示例-做了事务保存点后可以rollback(回滚)到指定的保存点,不至于所有的操作都不能用use pubsgoselect * from storesbegin transaction testsavetraninsert into stores(stor_id,stor_name)valuesC12347W.Z.D Book1)save transaction beforejnsert_data2goinsert into stores(stor_id,stor_name) values(,5678,,,foreat Books')gorollback transaction beforejnsert_data2 select * from stores-存储存储过程use pubsif exists(select name from sysobjects where name= ,proc_calculate_taxes, and type=,P,)drop procedure proc_calculate_taxesgocreate procedure proc_calculate_taxes (@p1 smallint=42,@p2 char(1),@p3 varchar(8)=,char,) select *from titles-执行过程EXECUTE PROC_CALCULATE_TAXES @P2=,A,。

sqlserver常用函数


1.字符串函数
长度与分析用
datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格
substring(expression,start,length) 不多说了,取子串
right(char_expr,int_expr) 返回字符串右边int_expr个字符
user_name() 用户在数据库中的名字
user 用户在数据库中的名字
show_role() 对当前用户起作用的规则
db_name() 数据库名
object_name(obj_id) 数据库对象名
col_name(obj_id,col_id) 列名
col_length(objname,colname) 列长度
sign(int_expr) 根据正数,0,负数,,返回+1,0,-1
sqrt(float_expr) 平方根
3.日期函数
getdate() 返回日期
datename(datepart,date_expr) 返回名称如 June
datepart(datepart,date_expr) 取日期一部份
字符串查找
charindex(char_expr,expression) 返回char_expr的起始位置
patindex("%pattern%",expression) 返回指定模式的起始位置,否则为0
2.数学函数
abs(numeric_expr) 求绝对值
ceiling(numeric_expr) 取大于等于指定值的最小整数
mm 1-12 月
dy 1-366 日
dd 1-31 日

sql server 常用的函数

SQL Server 是一种关系型数据库管理系统,广泛应用于企业和个人的数据存储和管理。

在 SQL Server 中,函数是一种非常重要的功能,用于对数据进行处理和计算。

本文将介绍 SQL Server 中常用的函数,包括数学函数、字符串函数、日期时间函数等,并给出相应的示例和用法说明。

一、数学函数1. ABS():返回一个数的绝对值。

示例:SELECT ABS(-10) as Result;结果:102. ROUND():将一个数四舍五入到指定的小数位数。

示例:SELECT ROUND(3.14159, 2) as Result;结果:3.143. POWER():返回给定数的指定次幂。

示例:SELECT POWER(2, 3) as Result;结果:84. CEILING():返回大于或等于指定表达式的最小整数。

示例:SELECT CEILING(3.14) as Result;结果:45. FLOOR():返回小于或等于指定表达式的最大整数。

示例:SELECT FLOOR(3.14) as Result;结果:3二、字符串函数1. LEN():返回指定字符串的长度。

示例:SELECT LEN('Hello') as Result;结果:52. UPPER():将字符串转换为大写字母。

示例:SELECT UPPER('hello') as Result;结果:HELLO3. LOWER():将字符串转换为小写字母。

示例:SELECT LOWER('HELLO') as Result;结果:hello4. LEFT():返回字符串左边指定长度的子串。

示例:SELECT LEFT('Hello', 3) as Result;结果:Hel5. RIGHT():返回字符串右边指定长度的子串。

示例:SELECT RIGHT('Hello', 3) as Result;结果:llo三、日期时间函数1. GETDATE():返回当前的系统日期和时间。

SQLServer常用函数及命令

SQLServer常⽤函数及命令1.字符串函数--ascii函数,返回字符串最左侧字符的ascii码值SELECT ASCII('a') AS asciistr--ascii代码转换函数,返回指定ascii值对应的字符SELECT CHAR(97) AS strs--left(c1,n)左⼦串函数,返回字符串c1中从左边开始的n个字符SELECT LEFT('helloworld',4) AS lefts--len(c1)返回字符串c1的字符(⽽不是字节)数,其中不包含尾随空格SELECT LEN('helloworld') AS lens--lower(c1) ⼤写转换为⼩写SELECT LOWER('HELLOWORLD') AS lowers--LTRIM(c1)删除前导空格,返回删除了前导空格的字符串 ltrim()去左边空格(rtrim()右边空格)SELECT LTRIM(' asafas') AS lt--REPLACE(C1,C2,C3) 替换字符函数SELECT REPLACE('ZHESSDF-DFDSS','-','@') AS RE--REPLICATE(C1,N)复制函数,以指定的次数n重复字符串c1SELECT REPLICATE('这是复制函数-',3) AS rep--right(c1,n)右⼦串函数,返回字符串c1中从右边开始的n个字符串SELECT RIGHT('asdfggh',4) AS strs--space(n) 空格函数,返回由n个重复的空格字符串SELECT SPACE(7) AS spaces--str(f,n,m)返回由数值数据f转换来的字符串,字符串的长度有参数n决定,字符串中保留的⼩数位书由M决定SELECT STR(12.1234,9,6) AS strs--SUBSTRING(c1,n1,n2)求⼦串函数,返回字符串c1从n1开始,长度为n2的⼦串SELECT SUBSTRING('mylightshina',4,5)--upper(c1) 转⼤写SELECT UPPER('asdff') AS up--ISNULL('内容',''):判断字符串是否为null,是的话返回‘’2.⽇期函数--时间⽇期SELECT'today''s date is '+CONVERT(VARCHAR(12), GETDATE(),102)AS daSELECT GETDATE() 当前⽇期时间,GETUTCDATE() ut⽇期时间,DATEPART(YEAR, GETDATE()) 年,DATENAME(YEAR, GETDATE()) 年名,DATEPART(MONTH, GETDATE()) ⽉,DATENAME(MONTH, GETDATE()) ⽉份名,DATEPART(DAY, GETDATE()) ⽇,DAY(GETDATE()) ⽇,MONTH(GETDATE()) ⽉,YEAR(GETDATE()) 年,DATEADD(DAY, 5, GETDATE()) 新⽇期,DATEDIFF(DAY, GETDATE(), '2018-12-17') AS⽇期间隔;3.系统函数--转换函数 cast(),convert()SELECT CAST('2018'AS DECIMAL(10, 5)) AS deci,CONVERT(VARCHAR, GETDATE(), 101) AS'101',CONVERT(VARCHAR, GETDATE(), 102) AS'102',CONVERT(VARCHAR, GETDATE(), 103) AS'103',CONVERT(VARCHAR, GETDATE(), 104) AS'104',CONVERT(VARCHAR, GETDATE(), 105) AS'105',CONVERT(VARCHAR, GETDATE(), 106) AS'106',CONVERT(VARCHAR, GETDATE(), 107) AS'107',CONVERT(VARCHAR, GETDATE(), 108) AS'108',CONVERT(VARCHAR, GETDATE(), 109) AS'109',CONVERT(VARCHAR, GETDATE(), 100) AS'100',CONVERT(VARCHAR, GETDATE(), 120) AS'120',CONVERT(VARCHAR, GETDATE(), 121) AS'121',CONVERT(VARCHAR, GETDATE(), 126) AS'126',CONVERT(VARCHAR, GETDATE(), 130) AS'130';--创建uniqueidentifier类型的唯⼀值SELECT NEWID() AS Id--ISNULL(c1,c2)SELECT ISNULL(ParentId,'########'),*FROM dbo.Module--isdate(exp)判断exp是否为有效⽇期SELECT ISDATE('2018-12-11 12:2:1')--ISNUMERIC(c1)判断c1是否是数字,是则返回1,否返回0SELECT ISNUMERIC('1') 是,ISNUMERIC('a') 否4.流程控制语句--begin...end语句块BEGINSELECT*FROM dbo.Role;END;--if...else语句IF1>4SELECT*FROM dbo.Role;ELSESELECT*FROM dbo.FlowInstance;--简单case表达式SELECT CASE ActivityType WHEN2THEN'qqq'ELSE'www'END ss ,*FROM dbo.FlowInstance--搜索case表达式SELECT CASE WHEN ActivityType>2THEN'qqq'ELSE'www'END ss ,*FROM dbo.FlowInstance--waitfor语句WAITFOR DELAY '00:00:03';SELECT*FROM dbo.Role;--在下午⼋点查询输出WAITFOR TIME '20:00:00';SELECT*FROM dbo.Form;--while语句DECLARE@sum INT,@i INT;SET@i=0;SET@sum=0;WHILE@i<=100BEGINSET@i=@i+1;IF ((@i%2) =0)CONTINUE;SET@sum=@sum+@i;IF (@i>50)BREAK;END;PRINT'1-50中的奇数和为'+CONVERT(CHAR(6), @sum);5.sp命令1、数据库:--sp_helpdb:报告有关指定数据库或所有数据库的信息。

sqlserver常用函数

返回架构范围内对象的数据库对象标识号。
查询表的标识:select object_id(''dbo.tableName'',''u'')
查询存储过程的标识:select object_id(''dbo.procName'',''p'')
查询视图的标识:select object_id(''dbo.procName'',''v'')
使用指定的替换值替换 NULL。
6、row_number() over(order by postid desc)
返回结果集分区内行的序列号,每个分区的第一行从 1 开始。
7、OBJECT_ID (
''[ database_name . [ schema_name ] . | schema_name . ] object_name'' [ ,''object_type'' ] )
/*返回由重复的空格组成的字符串。*/
CHARINDEX ( expression1 ,expression2 [ , start_location ] )
/*返回字符串中指定表达式的开始位置。如果在 expression1 内找不到 expression2,则 CHARINDEX 返回 0。*/
一、日期和时间函数
DATEADD (datepart , number, date )
/*返回给指定日期加上一个时间间隔后的新 datetime 值。
SELECT DATEADD(day, 21, OrderDate)AS TimeFrame
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

-聚合函数use pubsgoselect avg(distinct price) 一算平均数from titleswhere type=*business'gouse pubsgoselect max(ytd_sales) 一最大数from titlesgouse pubsgoselect min(ytd_sales)"最小数from titlesgouse pubsgoselect type,sum(price),sum(adva nee) —求和from titlesgroup by typeorder by typegouse pubsgoselect count(distinct city) 一求个数from authorsgouse pubsgoselect stdev(royalty) ■■返回给定表达式中所有值的统计标准偏差from titlesgouse pubsgoselect stdevp(royalty)-返回表达式中所有制的填充统计标准偏差from titles gouse pubsgoselect var(royalty)"返回所有值的统计方差from titlesgouse pubsgoselect varp(royalty)-返回所有值的填充的统计方差from titlesgo-数学函数select sin(23.45),atan(1.234),rand(),PI(),sign(-2.34) 一其中rand 是获得一个随机数-配置函数SELECT @@VERSION 一获取当前数据库版本SELECT @@LANGUAGE -当前语言-时间函数select getdate() as 'wawa_getdate' 一当前时间select getutcdate() as !wawa_getutcdate' 一获取utc 时间select day(getdate()) as 'wawa_day' 一取出天select month(getdate()) as 'wawa_month' 一取岀月select year(getdate()) as 'wawa_year' 一取出年select dateadd(d,3,getdate()) as wawa_dateadd •■力口三天,注意'd‘表示天,'m'表示月,yy表示年,下而一样select datediff(d,*2004-07-01 *,*2004-07-15') as wawa_datediff 一计算两个时间的差select datename(d,*2004-07-15!) as wawa_datename "取岀时间的某一部分select datepart(d,getdate()) as wawa_datepart 一取出时间的某一部分,和上面的那个差不多"字符串函数select ascii(123) as ,123',ascii('123') as ,H123m,ascii(,abc,) as H,abc M,一转换成ascii 码select char(123),char(321 ),char(-123) •■根据ascii 转换成字符select lower('ABC'),lower('Abc'),upper('Abc'),upper('abc') 一转换大小写select str(123.45,6,1), str(123.45,2,2) 一把数值转换成字符串select ItrimC ”左边没有空格”')“去空格select rtrim(H,右边没有空格”’)-去空格select ltrim(rtrimC ”左右都没有空格” ’))••去空格select left(!sql server*,3),right('sql server*,6) 一取左或者取右use pubsselect au_lname,substring(au_fname,1,1) -取子串from authorsorder by aujnameselect charindex(*1237abc123def,2) -返回字符串中指定表达式的起始位置select patindex(*123','abc123def,),patindex(,%123%';abc123def) 一返回表达式中某模式第一次出现的起始位置select quotename(,abc','{,),quotename(,abc')"返回由指定字符扩住的字符吊select reverse(,abc'),reverse('上海')-颠倒字符串顺序select replace('abcdefghicdeVcde7xxxx')"返回呗替换了指定子串的字符串select space(5),space(-2)"系统函数select host_name() as ’host_name;host_id() as 'host_id;userjname() as'user name',user id() as 'user id',db name() as *db name*-变量的定义使用-声明局部变量declare @mycounter intdeclare @last_name varchar(30),@fname varchar(20),@state varchar(2) 一一下声明多个变量-给变量赋值use northwindgodeclare @firstnamevariable varchar(20),@regi on variable varchar(30)set @firstnamevariable=,anne, -可以用set,也可以用select给变量赋值,微软推荐用set,但select在选择一个值直接赋值时很有用set @regionvariableselect lastname,firstname,title -用声明并赋值过的变量构建一个Select语句并査询from employeeswhere firstname= @firstnamevariable or region=@regioinvariablego-全局变量select @@version "返回数据库版本select @@error -返回最后的一次脚本错课select @@identity -返回最后的一个自动增长列的id-while,break,continue 的使用-首先计算所有数的平均价格,如果低于30的话进入循环让所有的price翻倍,一里而又有个if来判断如果最大的单价还大于50的话,退出循环,否则继续循环, 知道最大单价大于50就break岀循环,呵呵,一我分析的应该对吧.use pubsgowhile (select avg(price) from titles) <$30beginupdate titlesset price=price*2select max(price) from titlesif(select max(price) from titles) >$50breakelsecontinueendprint 'too much for the marker to bear*-事务编程经典例子-begin transaction 是开始事务,commit transaction 是提交事务‘rollback transaction 是回滚事务-这个例子是先插入一条记录,如果岀现错课的话就回滚事务,也就是取消,并直接return(返回),如果没错的话就commit提交这个事务了哦-上而的那个return返回可以返回一个整数值,如果这个值是0的话就是执行的时候没出错,如果岀错了就是一个负数,一这个return也可以用在存储过程中,可用用exec @return_status= pro_name 来获取这个值use pubsgobegin tran mytraninsert into stores(stor_id,stor_name) values(,333',,my books1)goinsert into discounts(discounttype,stor_id J discount) valuesf 清仓甩卖79999\50.00)if @@error<>0beginrollback tran mytrmnprint'插入打折记录出错’returnendcommit tran mytran-事务处理的保存点示例-做了事务保存点后可以rollback(回滚)到指定的保存点,不至于所有的操作都不能用use pubsgoselect * from storesbegin transaction testsavetraninsert into stores(stor_id,stor_name)valuesC12347W.Z.D Book1)save transaction beforejnsert_data2goinsert into stores(stor_id,stor_name) values(,5678,,,foreat Books')gorollback transaction beforejnsert_data2 select * from stores-存储存储过程use pubsif exists(select name from sysobjects where name= ,proc_calculate_taxes, and type=,P,)drop procedure proc_calculate_taxesgocreate procedure proc_calculate_taxes (@p1 smallint=42,@p2 char(1),@p3 varchar(8)=,char,) select *from titles-执行过程EXECUTE PROC_CALCULATE_TAXES @P2=,A,。

相关文档
最新文档