首页 > 代码库 > TSQL基础(三)

TSQL基础(三)

字符处理函数

sql中常见的字符类型有:

char(n) --长度固定 不可变 非Unicode 字符数据 n 必须是一个介于 1 和 8,000 之间的数值

nchar(n) --长度固定 不可变 Unicode 字符数据 n 的值必须介于 1 与 4,000 之间,字节的存储大小是所输入字符个数的两倍。

varchar(n) --长度可变 非Unicode 字符数据 n 必须是一个介于 1 和 8,000 之间的数值

nvarchar(n) -- 长度可变 Unicode 字符数据 n 的值必须介于 1 与 4,000 之间,字节的存储大小是所输入字符个数的两倍。

 

substring(expression,start,length) 从start开始截取length长度的字符串,下标从1开始

select  substring(Sname,0,1) as 从0开始取1个字符,substring(Sname,1,1) 从1开始取1个字符,* from Student

 

left(expression,length)从左边开始截取length个长度的字符串,  right(expression,length)从右边开始截取length个长度的字符串

select  left(Sname,1) 从左边开始取1个字符,right(Sname,1) as 从右边开始取1个字符,* from Student

 

 

len(string)返回字符串长度,长度不包含尾部空格,  datalength(string)返回字符串长度,长度包含尾部空格

 print len( 1234 5678   ) print datalength( 1234 5678   )

 

 

 charindex(string,expression)获取和string相同字符串的位置

print charindex(4, 1234 5678   )

 

 

 replace(expression,stirng_pattern,string_replacement) 查找的子字符串stirng_pattern,替换成字符串string_replacement

 print replace( 1234 5678   ,4,)

 

 

stuff(expression,start,length,stirng)将从start开始,往后的length个长度的子字符串替换成string 

 print replace( 1234 5678   ,4,) print stuff( 1234 5678   ,charindex(4, 1234 5678   ),1,)

 

 

upper(expression)转换为大写,lower(expression)转换为小写,rtrim(expression)去除右边空格,ltrim(expression)去除右边空格

  print upper( abCDEf  )  print lower( abCDEf  )  print ltrim( abCDEf  )  print rtrim( abCDEf  )

 

 

特殊的where条件

between...and... (包含上下限)

select * from Studentselect * from Studentwhere S# between  1 and 3select * from Studentwhere Sage between  1989-01-01 and 1990-05-20

 

 

in

select * from Studentselect * from Student where  S# in(01,02) or Sname in(王菊,郑竹)

 

 

like("%“代表任意一个或多个字符, "_"代表任意一个字符)

select * from Studentselect * from Student where  Sname like %云 or Sname like 赵_

 

case...when...

 select case year(Sage)             when 1989 then 89年            when 1990 then 90年             when 1991 then 91年            else 不计算        end  as 年份,* from Student                         select case             when  year(Sage)=1989 then 89年            when  year(Sage)=1990 then 90年             when  year(Sage)=1991 then 91年            else 不计算        end  as 年份,* from Student

 

 

TSQL基础(三)