首页 > 开发 > 综合 > 正文

TSQL基础(三)

2024-07-21 02:48:25
字体:
来源:转载
供稿:网友
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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表