sql 获取字符串长度SQL字符串操作汇总

将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入此处
  select stuff('hi,world!',4,4,'****') --返回值hel****orld!
  --返回从指定位置开始指定长度的字符串
  select substring('Hello,World!',2,10) --返回值ello,World
  --将字符串中某段字符替换为指定的字符串
  select replace('hi,world!','ll','aa') --返回值heaao,world!
  --去除字符串中左面的空格
  select ltrim(' hi,world!') --返回值hi,world!
  --去除字符串中左面的空格
  select ltrim('hi,world! ') --返回值hi,world!
  --去除字符串中左面和右边的空格
  select ltrim(' hi,world! ') --返回值hi,world!
  --将NULL值替换为指定字符
  select isnull('a',null) --返回值a
  --转换数据类型
  select cast('2007-10-11' as datetime) --返回值2007-10-11 00:00:00.000
  select convert(datetime,'2007-10-11') --返回值2007-10-11 00:00:00.000
  --获取字符串长度
  select len('hi,world!') --返回值12
  --获取字符串的前3个字符
  select left('hi,world!',3) --返回值hel
  --获取字符串的后3个字符
  select right('hi,world!',3) --返回值ld!
  --去除字符串的前3个字符
  select right('hi,world!',(len('hi,world!')-3)) --返回值lo,world!
  --去除字符串的后3个字符
  select left('hi,world!',(len('hi,world!')-3)) --返回值hi,wor
  --获取在该字符串中某字符串的位置(返回数字)
  select charindex('e','hi,world!') --返回值2
  --返回从第二个字符开始前4个字符
  select left(right('[哈哈哈哈]aaa',len('[哈哈哈哈]aaa')-1),4) --返回值哈哈哈哈
  --返回字符的小写情势
  select lower('HELLO,WORLD!') --返回值hi,world!
  --返回字符的大写情势
  select UPPER('hi,world!') --返回值HELLO,WORLD!
  --用第三个表达式替换第一个字符串表达式中浮现的所有第二个指定字符串表达式的匹配项
  (要是此中有一个输入参数属于 nvarchar 数据类型,则返回 nvarchar;不然返回 varchar。要是任何一个参数为 NULL,则返回 NULL。)
  SELECT REPLACE('Hello,World!','l','a') --返回值Heaao,Worad!
  SELECT REPLACE('Hello,World!','l','') --返回值Heo,Word!
  SELECT REPLACE('Hello,World!','l',null) --返回值NULL
  --以右边参数数值次数复制字符表达式
  select REPLICATE('Hello,World!',4) --返回值Hello,World!Hello,World!Hello,World!Hello,World!
  --返回反转后的字符串
  select REVERSE('Hello,World!') --返回值!dlroW,olleH
  --施用DIFFERENCE时,两个字符串发音越相似(仅限于英书契符),返回值越大(返回值在0-4之间)
  DIFFERENCE('sun','san') --返回值4
  DIFFERENCE('sun','safdsdf') --返回值3
  DIFFERENCE('sun','dgffgfdg') --返回值0
  --将带小数点的数字类型转换为可设定长度可设定小数位的四舍五入后的字符串
  SELECT STR(123.34584, 7, 3) --返回值123.346
  --当设定长度值小于整数部位长度时,字符串将返回设定长度个*
  SELECT STR(123333.34584, 5, 4) --返回值*****
  --================================================ ===================================
  --=====================================数字操作汇总==================================
  --返回指定数字的最大整数
  select floor(123456.1234) --返回值123456
  --返回不带小数部分并且不小于其参数的值的最小数字。要是参数是一个空序列,则返回空序列
  select ceiling(123.010) --返回124
  select ceiling(null) --返回NULL
  --返回四舍五入后的最靠近该数值的数值
  select round(126.018,2) --返回126.12
  --返回一个0-1之间的FLoat类型的随机数
  select rand() --返回0.94170703697981
  --返回圆周率PI的值
  SELECT PI() --返回3.14159265358979


sql带分隔符的字符串截取
Posted on 2012-11-28 14:05 桦林 阅读(461) 评论(0) 编辑 收藏 


declare @str nvarchar(50);
set @str='462,464,2';
select @str as '字符串'
select len(@str) as '字符长度'
select charindex(',',@str,1) as '第一个逗号的索引值'
select LEFT(@str,charindex(',',@str,1)-1) as '第一个值'
select SUBSTRING(@str,charindex(',',@str,1)+1,len(@str)) as '从第一逗号开始截取出后面的字符串'
select LEFT(SUBSTRING(@str,charindex(',',@str,1)+1,len(@str)),CHARINDEX(',',SUBSTRING(@str,charindex(',',@str,1)+1,len(@str)),1)-1) as '中间的值'
select SUBSTRING(SUBSTRING(@str,charindex(',',@str,1)+1,len(@str)),charindex(',',SUBSTRING(@str,charindex(',',@str,1)+1,len(@str)),1)+1,len(@str)) as '最后面的值' --从第二个逗号开始截取出其后的字符串

猜你喜欢

转载自mengjichen.iteye.com/blog/2062324