整理:常用字符串处理函数

来源:互联网 发布:微信系统源码下载 编辑:程序博客网 时间:2024/04/30 15:33
常用函数

REPLACE 函数
参数1:你的字符串
参数2:需要替换的字符串
参数3:替换用的字符串
SELECT REPLACE(123456,123,888) --结果:888456
SELECT REPLACE('Hello World!','Hello','My') --结果:My World!
SELECT Name=REPLACE(Name,'伍','李') FROM tb_Account --结果:把字段Name中的'伍'字显示为'李'字,REPLACE中的三个参数可以为字符或表达式(即字段,变量等..)
=========================================================

SUBSTRING 函数
参数1:你的字符串(不支持Int型)
参数2:开始替换位置
参数3:结束替换位置
SELECT SUBSTRING('Hello World!',1,5) --结果:Hello
SELECT SUBSTRING('Hello World!',6,6) --结果:World
SELECT Name=SUBSTRING(Name,1,1) FROM tb_Account --结果:显示字段Name中的第一个字符
=========================================================

CHARINDEX 函数
参数1:你要查找的字符串(不支持Int型)
参数2:你被查找的字符串 返回参数1在参数2的位置(不支持Int型)
SELECT CHARINDEX('3','123456789') --结果:3
SELECT CHARINDEX('H','Hello World!') --结果:1
SELECT CHARINDEX('W','Hello World!') --结果:7
SELECT Name=CHARINDEX('伍',Name) FROM tb_Account --结果:查找Name中的'伍'字为第几个字符,如果没有找到返回0
===========================================================

STUFF 函数
一共(四个参数)
函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符;然后将第二个字符串插入第一个字符串的开始位置。
STUFF 的功能:删除指定长度的字符串并在指定的起始点插入另一组字符
STUFF ( character_expression , start , length , character_expression ) 
character_expression :操作的字符,
start:删除和插入的起始点,
length:删除的长度,
character_expression :要插入的字符
SELECT STUFF('Hello World??',12,2,'!') --结果:Hello WORLD! 从第12个字符开始,删2个字符,替换为'!'
SELECT STUFF('Hello WORLD????',6,99,'!') --结果:Hello! 从第6个字符开始,删99个字符,替换为'!'
SELECT STUFF(88888,5,1,0) --结果:88880 从第6个数字开始,删1个数字,替换为0
===============================================================

LEFT函数
返回最左边N个字符,由参数2决定
SELECT LEFT('Hello World!',5) --结果:Hello
SELECT LEFT('Hello',10) --结果:Hello
SELECT LEFT(88888,3) --结果:888
SELECT Name=LEFT(Name,2)FROM tb_Account --从字段Name中取前两个字符
================================================================

RIGHT 函数
返回最右边N个字符,由参数决定
SELECT RIGHT('Hello World!',5) --结果:orld!
SELECT RIGHT('Hello',10) --结果:Hello
SELECT RIGHT(88888,2) --结果:88
SELECT Name=RIGHT(Name,2)FROM tb_Account --从字段Name中取后两个字符
================================================================

REPLICATE 函数
把参数一复制n次,n由参数2指定,n为整数。(当n为0生成0长字串,为负数,产生null)
SELECT REPLICATE('Hello World!',2) --结果:Hello World!Hello World!
SELECT REPLICATE('Hello',3) --结果:HelloHelloHello
SELECT REPLICATE(88,2) --结果:8888
SELECT Name=REPLICATE(Name,2)FROM tb_Account --复制两次Name中的值,显示在字段Name中
================================================================

LEN 函数
返回参数长度
SELECT LEN('Hello World!') --结果:12
SELECT LEN('Hello') --结果:5
SELECT LEN(88) --结果:2
SELECT Name=LEN(Name)FROM tb_Account --显示Name字段的值的长度。
================================================================

PATINDEX 函数
返回字符或者字符串在另一个字符串或者表达式中的起始位置,PATINDEX函数支持搜索字符串中使用通配符,这使PATINDEX函数对于变化的搜索字符串很有价值。第一参数之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。
SELECT PATINDEX ('%ello%','Hello World!') --结果:2
SELECT PATINDEX ('%ellc%','Hello World!') --结果:0
SELECT PATINDEX ('%!%','Hello World!') --结果:12
SELECT Name = PATINDEX('%伍%',Name) FROM tb_Account --显示Name字段中为'伍'的值在字段中的位置
====================================================================

LOWER和UPPER 函数
大小写转化
SELECT LOWER ('Hello World!') --结果:hello world!
SELECT UPPER ('Hello') --结果:HELLO
SELECT LOWER (123456) --结果:654321
SELECT Name = LOWER(Name)FROM tb_Account --显示Name字段中的值全部显示小写字母
====================================================================

LTRIM和RTRIM 函数
删除左边空格和右面空格
SELECT LTRIM (' Hello World!') --结果:Hello World!
SELECT RTRIM ('Hello ') --结果:Hello
SELECT RTRIM (123456) --结果:123456
SELECT Name = RTRIM(LTRIM(Name)) FROM tb_Account --显示Name字段中的值,去掉左边空格和右边空格
====================================================================

不常用的函数

ASCII 函数
返回字符表达式中最左侧的字符的 ASCII 代码值。
SELECT ASCII('ABC') --结果:65
SELECT ASCII('A') --结果:65
SELECT ASCII('a') --结果:97
SELECT Name=ASCII(Name) FROM tb_Account --结果:返回Name中的第一个字符的ASCII码
================================================================

NCHAR 函数
根据 Unicode 标准的定义,返回具有指定的整数代码的 Unicode 字符。
参数是介于 0 与 65535 之间的正整数。如果指定了超出此范围的值,将返回 NULL。
SELECT NCHAR(123) --结果:{
SELECT NCHAR(99999) --结果:NULL
SELECT NCHAR(125) --结果:}

=========================================================

CHAR 函数
CHAR函数跟NCHAR函数类似,只是NCHAR包含更多字符
参数为介于 0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回 NULL 值。
SELECT CHAR(97) --结果:a
SELECT CHAR(98) --结果:b
SELECT CHAR(99) --结果:c
==========================================================

SOUNDEX 函数
返回一个由四个字符组成的代码 (SOUNDEX),用于评估两个字符串的相似性。
例:SELECT SOUNDEX ('lihan'), SOUNDEX ('lihon');
----- ----- 
L546 L542
SELECT SOUNDEX('hello') --结果:A120
SELECT SOUNDEX('hall') --结果:H100
SELECT SOUNDEX('h') --结果:H100
=========================================================

STR 函数
参数1:必须为数字
参数2:表示转化成char型占的位置,小于参数一位置返回*,大于右对齐
SELECT STR(123,1) --结果:*
SELECT STR(10,5) --结果: 10
SELECT STR(888,10) --结果: 888
===========================================================

DIFFERENCE 函数
返回一个整数值,指示两个字符表达式的 SOUNDEX 值之间的差异。
返回的整数是 SOUNDEX 值中相同字符的个数。返回的值从 0 到 4 不等:0 表示几乎不同或完全不同,4 表示几乎相同或完全相同。
SELECT DIFFERENCE('abc','a') --结果:2
SELECT DIFFERENCE(10,5) --结果:4
SELECT DIFFERENCE('kkk','kkk') --结果:4
==================================================================

REVERSE 函数
反转字符串
SELECT REVERSE ('Hello World!') --结果:!dlroW olleH
SELECT REVERSE ('Hello') --结果:olleH
SELECT REVERSE (123456) --结果:654321
SELECT Name = REVERSE(Name)FROM tb_Account --显示Name字段中的值全部反转
=================================================================

RAND 函数
获得随机数
SELECT RAND() ----系统提供默认的随机数作为种子
SELECT RAND(datepart(ms,getdate())*1000) 
SELECT RAND(replace(convert(varchar,getdate(),114),':',''))

0 0