Sql字符串操作函数
上一篇 / 下一篇 2008-09-23 14:05:41 / 个人分类:数据库技术
字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、BINARY、和VARBINARY数据类型以及可以隐式转换为CHAR或VARCHAR的数据类型。可以在SELECT语句的SELECT和WHERE子句以及表达式中使用字符串函数。常用的字符串函数有:
5}9U FOZ*j0ITPUB个人空间G~#Y4OKgA
一、字符转换函数
)cI.E
]~01、ASCII()ITPUB个人空间%\XX"Y-X6E8to*_
返回字符表达式最左端字符的ASCII码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
ITPUB个人空间1e5zjuf+s!nGE
2、CHAR()ITPUB个人空间$NX!N V
c
将ASCII码转换为字符。如果没有输入0 ~ 255之间的ASCII码值,CHAR()返回NULL。
n4D
l7}tj8Wk2G6Kaw03、LOWER()和UPPER()ITPUB个人空间np*GE6RuR"M,{:E
LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。
ITPUB个人空间7wnL1Xy k5W"y&g5?
4、STR()
2Ha)A)P/@IPr.j0把数值型数据转换为字符型数据。ITPUB个人空间\vq}nu
STR (<float_expression>[,length[,<decimal>]])
'O"u g7?)DyM0length指定返回的字符串的长度,decimal指定返回的小数位数。如果没有指定长度,缺省的length值为10,decimal缺省值为0。ITPUB个人空间4{b^0R%z*x#Q
当length或者decimal为负值时,返回NULL;
%C;{a&C_Bx d u[3f0当length小于小数点左边(包括符号位)的位数时,返回length个*;ITPUB个人空间 Aa Ok(g3~u*G@Q
先服从length,再取decimal;
/z9S3`}1V/_qz0当返回的字符串位数小于length,左边补足空格。
ITPUB个人空间R%d1li%\(a6V;y,E]
二、去空格函数ITPUB个人空间)~^C^-T6[l
Iq
1、LTRIM()把字符串头部的空格去掉。
/cH2e&r4R;D8o ?0
v#y(JUuJB}6k$M$U02、RTRIM()把字符串尾部的空格去掉。
E$nL5S~*mA0
g(v;i*IF;wQ.mV2F0三、取子串函数
wb~v'K\*I01、left()ITPUB个人空间l4T6^
rY
LEFT (<character_expression>,<integer_expression>)ITPUB个人空间6K
jp2sT4Z$H{
返回character_expression左起integer_expression个字符。
|fB"D
^)X rN.[B0
kPO@){-]1V0LE02、RIGHT()ITPUB个人空间-v+m;Ipc9D
RIGHT (<character_expression>,<integer_expression>)ITPUB个人空间,p O3qg1e
返回character_expression右起integer_expression个字符。
2Unw-lbOQK9}0
&x4V#e;VP8o0ay
v03、SUBSTRING()ITPUB个人空间-D%H.]G ^&\"hrU
SUBSTRING (<expression>,<starting_ position>,length)ITPUB个人空间#e[| hgU2b
返回从字符串左边第starting_ position个字符起length个字符的部分。ITPUB个人空间*|+R9C,r2rq-Zc
ITPUB个人空间%^q"cEt.?k0e/P7l)N0|
四、字符串比较函数
$H,c&@Opi
Z01、CHARINDEX()
H?*A:R/Qw0返回字符串中某个指定的子串出现的开始位置。ITPUB个人空间_ na}$M"]mT
CHARINDEX (<’substring_expression’>,<expression>)ITPUB个人空间\
G,T/rWw1s!l Vx6O
其中substring _expression是所要查找的字符表达式,expression可为字符串也可为列名表达式。如果没有发现子串,则返回0值。
M5]b nZ2L0此函数不能用于TEXT和IMAGE数据类型。
},W_8@Y7v1K,kRE02、PATINDEX()
#UvL@*y1E8|)Y0返回字符串中某个指定的子串出现的开始位置。
I:j^a8E{0PATINDEX (<’%substring _expression%’>,<column_ name>)其中子串表达式前后必须有百分号“%”否则返回值为0。
#I0nQ1Ep0与CHARINDEX函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、VARCHAR和TEXT数据类型。ITPUB个人空间'yS)j,D2dN6W sa&TR
d,l1o9U|1C/F0五、字符串操作函数
W*{o7~&WE,f01、QUOTENAME()ITPUB个人空间\5N R+mMK
返回被特定字符括起来的字符串。ITPUB个人空间T:dN#Z|c%m9M
QUOTENAME (<’character_expression’>[,quote_ character])其中quote_ character标明括字符串所用的字符,缺省值为“[]”。
8f+a1Hl.|v-a(P02、REPLICATE()
7f/^1P5uzN J)RL0返回一个重复character_expression指定次数的字符串。ITPUB个人空间Cp5a8BZ
REPLICATE (character_expression integer_expression)如果integer_expression值为负值,则返回NULL。
)[$F PcE+@} KB0ITPUB个人空间9}
\I2U
u8B3CTcT-UE
3、REVERSE()ITPUB个人空间 Bk
fe(n%xn7P
将指定的字符串的字符排列顺序颠倒。ITPUB个人空间 oO6Z)R;FZ
REVERSE (<character_expression>)其中character_expression可以是字符串、常数或一个列的值。ITPUB个人空间y4s7Mo;f3cLTf
2q0FVVt b$_O04、REPLACE()ITPUB个人空间7SZ7X^
F7a m)Q
返回被替换了指定子串的字符串。
,MZ.S
OMtl9t5Z0REPLACE (<string_expression1>,<string_expression2>,<string_expression3>)用string_expression3替换在string_expression1中的子串string_expression2。
5\^%m(T HI?7z_'o0ITPUB个人空间
Sk.q{`5X7H6Sq(X|
4、SPACE()ITPUB个人空间4M4d9V g,~:r;VG
返回一个有指定长度的空白字符串。
.dq*T
q-F-S.~6}P;C0SPACE (<integer_expression>)如果integer_expression值为负值,则返回NULL。ITPUB个人空间u+gKcF6mCuB![
ITPUB个人空间1B
[f(pN `u
5、STUFF()
tXD.Uk)^\s0用另一子串替换字符串指定位置、长度的子串。