第7章t语言函数语句new_第1页
第7章t语言函数语句new_第2页
第7章t语言函数语句new_第3页
第7章t语言函数语句new_第4页
第7章t语言函数语句new_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SQL Server2005第第7章章 Transact_SQL语言语言SQL Server20057.1 T-SQL7.1 T-SQL概述概述7.1.1 SQL Server中的运算符中的运算符 运算符就是进行运算的符号。运算符就是进行运算的符号。SQL Server支持的支持的运算符如表运算符如表7.1所示。所示。 一般来说,可以在允许使用表达式的场合用运算一般来说,可以在允许使用表达式的场合用运算符将常量、变量、对象等连接起来,形成新的表符将常量、变量、对象等连接起来,形成新的表达式。表达式。表7.2给出了运算符的优先级顺序。给出了运算符的优先级顺序。表7.1 T-SQL中的运算符运算符

2、运算符说明说明+加加-减减*乘乘/除除%取余取余=赋值赋值大于大于=大于等于大于等于表表7.1 T-SQL中的运算符中的运算符运算符运算符说明说明不大于不大于!,=,!= srSQL Server20057.2 7.2 常用运算符常用运算符 运算符是一种符号,用来指定要在一个或多个表运算符是一种符号,用来指定要在一个或多个表达式中执行的操作。达式中执行的操作。SQL Server常用的运算符有:常用的运算符有: 算术运算符算术运算符 赋值运算符赋值运算符 比较运算符比较运算符 逻辑运算符逻辑运算符 字符串串联运算符字符串串联运算符SQL Server20057.2.1 7.2.1 算数运算符算

3、数运算符 算术运算符包括:加(算术运算符包括:加(+)、减()、减(-)、乘)、乘(*)、除()、除(/)、取模()、取模(%)。)。 例例7.4 利用利用Product表计算每种商品的总价表计算每种商品的总价值值SELECT Price*stocks AS 商品总价值商品总价值FROM ProductSQL Server20057.2.2 7.2.2 赋值运算符号赋值运算符号 赋值运算符等号为(赋值运算符等号为(=)。)。 例例7.5 利用赋值运算符为表中的列设置标利用赋值运算符为表中的列设置标题。题。SELECT 客户编号客户编号=CustomerID,所在公司所在公司=CompanyNa

4、meFROM CustomerSQL Server20057.2.3 7.2.3 字符串串联运算符字符串串联运算符 字符串串联运算符为(字符串串联运算符为(+),允许通过加号),允许通过加号在多个字符串间进行字符串串联操作。在多个字符串间进行字符串串联操作。 例例7.6 使用串联运算符进行操作。使用串联运算符进行操作。DECLARE myvar char(20)SET myvar=SQL+SERVER+2000SELECT myvar AS 运算结果为:运算结果为:SQL Server2005 例例7.7 使用逻辑运算符查询满足条件的记录。使用逻辑运算符查询满足条件的记录。DECLARE my

5、var1 char(6),myvar2 intSELECT myvar1=p0100%, myvar2=1SELECT * FROM ProductWHERE ProductID like myvar1 AND CategoryID=myvar2 SQL Server20057.3 函数( (1) 1) 字符串函数字符串函数ASCII(char_exp)ASCII(char_exp):返回字符的返回字符的ASCIIASCII码码。例如,例如,select ASCII(select ASCII(a a) ) 返回返回9797。CHAR(int_exp)CHAR(int_exp):返回整数表达式返

6、回整数表达式int_expint_exp作为作为ASCIIASCII码所代表的字符,码所代表的字符,例如,例如, select CHAR(65) select CHAR(65) 返回返回字符字符 AA。CHARINDEX(exp1,exp2)CHARINDEX(exp1,exp2):在在exp2exp2中查找中查找exp1exp1出现出现的位置。例如的位置。例如: :select CHARINDEX(select CHARINDEX(serser, ,SQL serverSQL server) ) 返回返回5 5SQL Server2005LEFT(char_exp,int_exp)LEFT(

7、char_exp,int_exp):返回字符串返回字符串char_expchar_exp最左端的最左端的int_expint_exp个字符。个字符。例如,例如,select LEFT(CHINA,3) select LEFT(CHINA,3) 返回返回 CHICHI。RIGHT(char_exp,int_exp)RIGHT(char_exp,int_exp):返回字符表达式返回字符表达式char_expchar_exp最右端的最右端的int_expint_exp个字符。个字符。例如,例如, select RIGHT(CHINA,3) select RIGHT(CHINA,3) 返回返回 INA

8、INASPACE ( int_exp)SPACE ( int_exp):返回返回int_expint_exp个空格。个空格。例如,例如, select SPACE(3) select SPACE(3) 返回返回3 3个空格。个空格。SQL Server2005 REPLACE(exp1,exp2,exp3)REPLACE(exp1,exp2,exp3)将将exp1exp1中所有出现中所有出现exp2exp2的地方均用的地方均用exp3exp3替换。替换。例例 select REPLACE(xyzabcxyab,xy,rst)select REPLACE(xyzabcxyab,xy,rst)返回

9、返回 rstzabcrstabrstzabcrstab REPLICATE(char_exp,int_exp)REPLICATE(char_exp,int_exp):将字符表达式将字符表达式char_exp char_exp 重复重复 int_expint_exp次。例如次。例如: : select REPLICATE(XYZ,3) select REPLICATE(XYZ,3) 返回返回 XYZXYZXYZXYZXYZXYZ。 REVERSE (char_exp)REVERSE (char_exp):按反序显示按反序显示char_expchar_exp。例例 select REVERSE (

10、xyzabc) select REVERSE (xyzabc) 返回返回 cbazyxcbazyx。SQL Server2005LEN(str_exp)LEN(str_exp):返回返回str_expstr_exp中字符的个数。中字符的个数。例如,例如, select LEN(abcde) LEN(abcde) 返回返回5 5。UPPER (char_exp)UPPER (char_exp):返回将返回将char_expchar_exp中所有小写字中所有小写字母转成大写之后的字符串。母转成大写之后的字符串。例如,例如,select UPPER (aBcD1234) UPPER (aBcD123

11、4) 返回返回 ABCD1234ABCD1234LOWER(char_exp)LOWER(char_exp):返回将返回将char_expchar_exp中所有大写字母中所有大写字母转成小写之后的字符串。转成小写之后的字符串。例如,例如, select LOWER(aBcD1234) LOWER(aBcD1234) 返回返回 abcd1234abcd1234SQL Server2005 STUFF(exp1,start,length, exp2)STUFF(exp1,start,length, exp2): 将将exp1exp1中中从从startstart开始的连续开始的连续lengthlen

12、gth个字符替换成个字符替换成exp2exp2。例:例: select STUFF(xyzrst,2,4 ,abc)select STUFF(xyzrst,2,4 ,abc)返回返回 xabctxabct SUBSTRING(exp,start,length)SUBSTRING(exp,start,length):返回返回expexp中从中从startstart开始连续开始连续lengthlength个字符。个字符。例如,例如, select SUBSTRING (xyzrst,2,4) select SUBSTRING (xyzrst,2,4) 返回返回 yzrsyzrsSQL Server

13、2005( (2) 2) 日期和时间函数日期和时间函数 DATEADD(datepart,number,date)DATEADD(datepart,number,date):将将date日期日期中的中的datepart部分加上部分加上number,返回新的日期。返回新的日期。例例: select select DATEADD (day,3,6/24/2003 10:26:45)返回返回Jun 27 2003 10:26:45 。 DATEDIFF( datepart, startdate, enddate )DATEDIFF( datepart, startdate, enddate ):以以

14、datepart为单位返回为单位返回startdate和和enddate的间隔。的间隔。例:例:select select DATEDIFF (year,6/23/2001 10:26:45, 6/24/2003 10:26:45)返回返回2。SQL Server2005 DAY ( date )DAY ( date ):返回返回date日期中的日期中的“日日”部分值,部分值,该函数与该函数与DATEPART(day,date)是等价的。是等价的。例如,例如, select DAY( 6/24/2003 10:26:45 )返回返回24。 MONTH ( date )MONTH ( date

15、):返回返回date日期中的日期中的“月月”部分部分值。值。 YEAR (date )YEAR (date ):返回返回date日期中的日期中的“年年”部分值。部分值。 GETDATE ( )GETDATE ( ):返回系统的当前日期和时间。返回系统的当前日期和时间。SQL Server2005 ( (3) 3) 数学函数数学函数 ABS (numeric_expression ) ABS (numeric_expression ) :返回绝对值。返回绝对值。例如,例如, select select ABS(-21)返回返回21。 CEILING (numeric_expression )CE

16、ILING (numeric_expression ):返回大于等返回大于等于给定数据的最小整数。于给定数据的最小整数。例如,例如, select select CEILING(13.5)返回返回14。 FLOOR (numeric_expression )FLOOR (numeric_expression ) :返回小于等于返回小于等于给定数据的最大整数。给定数据的最大整数。例如,例如, select select FLOOR (13.5)返回返回13。SQL Server2005 ROUND (numeric_expression,length )ROUND (numeric_expres

17、sion,length ):按四舍按四舍五入返回给定数据的近似值。五入返回给定数据的近似值。例如,例如, select ROUND(156.45678,3) select ROUND(156.45678,3) 返回返回156.457156.457。 POWER(numeric_expression,y )POWER(numeric_expression,y ):返回给定数据返回给定数据的幂方值。的幂方值。例如,例如, select POWER(2.50,2) select POWER(2.50,2) 返回返回6.256.25。 RAND ( seed )RAND ( seed ) :返回一个介

18、于返回一个介于0 0和和1 1之间的之间的隨机数。其中任选项隨机数。其中任选项seedseed是个整数。是个整数。SQL Server20057.4 7.4 控制语句控制语句1. BEGIN-END将多个将多个T-SQL语句组合为一个程序块,相当于许多高语句组合为一个程序块,相当于许多高级语言中的级语言中的 。BEGINENDSQL Server20052. 2. IF-ELSEIF-ELSE语句语句IF ELSE其中条件表达式的值必须是逻辑值,其中条件表达式的值必须是逻辑值,ELSE子句是可子句是可选的。选的。其中其中可以是单条语句或程序块。可以是单条语句或程序块。 SQL Server20

19、05declare x int,y int,z intselect x=1,y=2,z=3if xy print xyelse if yz print yz else print z=y运行结果是:运行结果是: z=ySQL Server20053. 3. CASECASE表达式表达式CASE表达式可以用在任何表达式可以用在任何允许使用允许使用表达式的地方。表达式的地方。CASE表达式表达式不能单独执行不能单独执行,只能作为语句的一部分。,只能作为语句的一部分。(1) 简单简单CASE表达式表达式 CASE WHEN THEN WHEN THEN ELSE ENDSQL Server2005例

20、例7.8 调整员工工资调整员工工资 e_wage : 岗位级别岗位级别 job_level 为为1的,工资上调的,工资上调8%, 岗位级别为岗位级别为2的,工资上调的,工资上调7%, 岗位级别为岗位级别为3的,工资上调的,工资上调6%, 其他的,工资上调其他的,工资上调5% declare e_wage int,job_level intselect job_level=1,e_wage=1000set e_wage =Case job_levelwhen 1 then e_wage*1.08when 2 then e_wage*1.07when 3 then e_wage*1.06else

21、e_wage*1.05endselect e_wageSQL Server2005(2) 搜索搜索CASE表达式:表达式:CASEWHEN THEN WHEN THEN ELSE ENDSQL Server2005declare e_wage int,job_level intselect job_level=1,e_wage=1000set e_wage =casewhen job_level = 1 then e_wage*1.08when job_level = 2 then e_wage*1.07when job_level = 3 then e_wage*1.06else e_wag

22、e*1.05endprint e_wage例例7.9 用第二种格式完成上例用第二种格式完成上例SQL Server20054. WHILE语句直到条件不成立时退出循环直到条件不成立时退出循环WHILE BEGIN BREAK CONTINUE ENDSQL Server2005 其中的其中的如果由如果由多个多个T-SQL语句组成,则需语句组成,则需用用BEGIN和和END括起来。括起来。 通常情况下,通常情况下,CONTINUE和和BREAK是放在是放在IF-ELSE命令中的,即在满足某个条件时提前结束命令中的,即在满足某个条件时提前结束本次循环或退出本层循环。本次循环或退出本层循环。 BREAK命令命令: 让程序跳出包含它的最内层循环。让程序跳出包含它的最内层循环。 CONTINUE命令命令: 让程序跳过让程序跳过CONTINUE之后之后的语句回到的语句回到WHILE 循环的第一行命令。循环的第一行命令。 WHILE语句可以嵌套。语句可以嵌套。DECLARE i intSET i=1WHILE i=5 BEGIN- if i=3 break/* if i=3 begin SET i=i+1 continue end */ PRINT i SET i=i+1 END DECLARE i int, t intSET i=150WHIL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论