SQL Server字符串处理函数大全

上一篇 / 下一篇  2008-04-14 13:00:12 / 个人分类:数据库

数据库
select 字段1 from 表1 where 字段1.IndexOf("云")=1;51Testing软件测试网hwAX~$]R*P{*\4A
        这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。51Testing软件测试网/z"rW @`
left()是sql函数。51Testing软件测试网`&]g0~$PQZx
        select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用字符串函数。
X-B [],y1U }.[5Q0        常用的字符串函数有:51Testing软件测试网 iK6V0s:J#g,h2C;n U

一、字符转换函数
:u-MJN*L i z01、ASCII()51Testing软件测试网0` s.@!P*jq
        返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
`6\E)N9Q02、CHAR()51Testing软件测试网F&H1ZWz
        将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。
3e fH1f"y4b pZ03、LOWER()和UPPER()51Testing软件测试网n%U A,Gb'`}8U
        LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。51Testing软件测试网v6gld/`i
4、STR()51Testing软件测试网 jn"n\9`!v
        把数值型数据转换为字符型数据。
+WAm#?:a5O(`$x0STR (<float_expression>[,length[, <decimal>]])
V|5n"d {'M0        length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。
#Gh/K4\JE+~,o8\c0        当length 或者decimal 为负值时,返回NULL;51Testing软件测试网'hNeG.Mwy
        当length 小于小数点左边(包括符号位)的位数时,返回length 个*;
%d @L b&x T*Q;{0        先服从length ,再取decimal ;51Testing软件测试网n rp1mZ'P8_y'|
        当返回的字符串位数小于length ,左边补足空格。
aw-iE [8D0二、去空格函数51Testing软件测试网 @c;gj x:po q9X
1、LTRIM() 把字符串头部的空格去掉。51Testing软件测试网1@4z)C]x*{

51Testing软件测试网*J },P w @dCIB0I

2、RTRIM() 把字符串尾部的空格去掉。

)aa T*\L0

mLhPR?3l,X,h0三、取子串函数
$Y8{ [ud q*{0u01、left()
NY#lE^;sZ0s-a0LEFT (<character_expression>, <integer_expression>)
!m(hC_|%^3Rc0返回character_expression 左起 integer_expression 个字符。51Testing软件测试网9egp*e,r.ah

9O"\.OoY+v3`P"z02、RIGHT()51Testing软件测试网J fzEio B
RIGHT (<character_expression>, <integer_expression>)
$v"R7S0Lg0返回character_expression 右起 integer_expression 个字符。51Testing软件测试网w1ZHl)W_ hE

0^H3H:xjn"d?03、SUBSTRING()51Testing软件测试网SBa2m2B h0|
SUBSTRING (<expression>, <starting_ position>, length)51Testing软件测试网@?&nuK0{T3w7Lj3`
返回从字符串左边第starting_ position 个字符起length个字符的部分。51Testing软件测试网2Z:F7i,N0_5w

51Testing软件测试网7f8D5NA_6qw

四、字符串比较函数
8e.`9lK-G5I \].kan3LO01、CHARINDEX()51Testing软件测试网,Ro%GLf7V$amE
        返回字符串中某个指定的子串出现的开始位置。
G-U$m)t T*w5]%A0CHARINDEX (<’substring_expression’>, <expression>)51Testing软件测试网UWFDkKx/v
        其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。
!?5a6f9l/ctWX0        此函数不能用于TEXT 和IMAGE 数据类型。51Testing软件测试网?!^2rTOgQk
2、PATINDEX()51Testing软件测试网 uY"VBp^
        返回字符串中某个指定的子串出现的开始位置。
@2_}_)nn0_!T0        PATINDEX (<’%substring _expression%’>, <column_ name>)其中子串表达式前后必须有百分号“%”否则返回值为0。51Testing软件测试网 uFm9}%p"J%BN
        与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。51Testing软件测试网f%qxV I'a4T

'F4h,EPoKR0五、字符串操作函数51Testing软件测试网'D,m!VX8iW tl
1、QUOTENAME()51Testing软件测试网%k*X0]3kkwS4w7o.f
        返回被特定字符括起来的字符串。
%z.^1Z i0mu7z@7KN0QUOTENAME (<’character_expression’>[, quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。
mbQ0eR:WI ~FO\02、REPLICATE()51Testing软件测试网!cb$zaR6a} UI]-f
        返回一个重复character_expression 指定次数的字符串。51Testing软件测试网!g8`&q ]a\7X
REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。51Testing软件测试网!L*~O;_0aK GP

51Testing软件测试网 R]5N2J_

3、REVERSE()51Testing软件测试网'i4]-^Pu9R2v^V
        将指定的字符串的字符排列顺序颠倒。
'^8F:yQw.i(E~4e0REVERSE (<character_expression>) 其中character_expression 可以是字符串、常数或一个列的值。51Testing软件测试网iK8a*Lt

51Testing软件测试网e!hEB Pi\#R

4、REPLACE()51Testing软件测试网1Rw1Q"[ @)|+~(z'e
        返回被替换了指定子串的字符串。51Testing软件测试网 fK`0m8rF@6q;|G
REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用string_expression3 替换在string_expression1 中的子串string_expression2。51Testing软件测试网F E2^8O3YC$mk6M W,y

W8qv,eu E04、SPACE()51Testing软件测试网(QP4sM7Y
返回一个有指定长度的空白字符串。
|+Zxb.I ] @/a8u,fm0SPACE (<integer_expression>) 如果integer_expression 值为负值,则返回NULL 。51Testing软件测试网@${~9O aw @lRg#y

51Testing软件测试网$|wj%}4X2I-d4@*cw6K

5、STUFF()
k&n,JV#ml0        用另一子串替换字符串指定位置、长度的子串。
9`.A2~T"pi#~0STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>)
(j D a:Wh`}"o0        如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。51Testing软件测试网&o%L9a0u+y D.F"C S~ oM({
        如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。

)MiW@)V Z0
C U9~2mLD9Y051Testing软件测试网.]W KD2z%}N

六、数据类型转换函数51Testing软件测试网7}[z*Y1g
1、CAST()51Testing软件测试网V%Da|+mxB"~\
CAST (<expression> AS <data_ type>[ length ])

o6D6vtL&e#B0

u;FB(bOm02、CONVERT()51Testing软件测试网7u/`T K'@
CONVERT (<data_ type>[ length ], <expression> [, style])51Testing软件测试网C]t:mtxPY6Hh%{

51Testing软件测试网]&fFB0h0Uae

        1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。
|:z'YE%~a$},dU0        2)length用于指定数据的长度,缺省值为30。51Testing软件测试网/ScAP1\
        3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。
e:wngK-\3d7[w0        4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。51Testing软件测试网/N8|*Fu1_q
        5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。51Testing软件测试网-Jk'MpV
        6)把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。
J4U:~/jJ P4Z2s0        7)BIT类型的转换把非零值转换为1,并仍以BIT类型存储。
2g3De)f7t1U0D*@0        8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。
ZK p G ZX*nd0        9)用CONVERT()函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。
q0]Xwe$t3_]%z P4p0七、日期函数
N]+s"[cg`2SO01、day(date_expression) 51Testing软件测试网@.Y R bCK a YJ
        返回date_expression中的日期值51Testing软件测试网;bA9] Ke cL%gF

51Testing软件测试网(D"MI$ehz.loTk

2、month(date_expression)51Testing软件测试网] ~/qm"X
        返回date_expression中的月份值

YX](?-H/{t0

P+m |k$qC:{6KF(zC03、year(date_expression)
1eT3K;wA(_ ~O?0        返回date_expression中的年份值

U+R9M0Z"LB+gqL051Testing软件测试网_s-Ig8x4DB{

4、DATEADD()
@r^nG0DATEADD (<datepart>, <number>, <date>)
*z5iASyOF&C5Q5T0        返回指定日期date 加上指定的额外日期间隔number 产生的新日期。51Testing软件测试网gL$^^gq9X$?
5、DATEDIFF()
}:o;]3^m uzyo3i0DATEDIFF (<datepart>, <date1>, <date2>)51Testing软件测试网^:h({ tMu6p
        返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。51Testing软件测试网O^K9G!Q$o#S%b)N

51Testing软件测试网6R:Vn;[5o ds+A"@Ft

6、DATENAME()51Testing软件测试网NZyO l0n d/e9b N/o
DATENAME (<datepart>, <date>)51Testing软件测试网:Z5Ky `y8a&m]S
        以字符串的形式返回日期的指定部分此部分。由datepart 来指定。51Testing软件测试网sqA#jJ!C V7l

51Testing软件测试网;C K%v$Y h

7、DATEPART()51Testing软件测试网0|;b4C&K&rg
DATEPART (<datepart>, <date>)51Testing软件测试网'g#s)g([E;c
        以整数值的形式返回日期的指定部分。此部分由datepart 来指定。51Testing软件测试网6l4|'V![S
DATEPART (dd, date) 等同于DAY (date)51Testing软件测试网i7T5rq5yQMP4x
DATEPART (mm, date) 等同于MONTH (date)
!w2p6`+cd9A0DATEPART (yy, date) 等同于YEAR (date)51Testing软件测试网.sL:^D!a\

#iloN+mp!^08、GETDATE()51Testing软件测试网OH]_r
        以DATETIME 的缺省格式返回系统当前的日期和时间。51Testing软件测试网h PKZ7H


TAG: 数据库

安然的个人空间 引用 删除 coffeexl   /   2008-04-16 09:57:33
tochar():转换为字符型
upper(string):将string中的所有字母转换为大写
lower(),
nvl(score,0):若score为null,将其转换为0
安然的个人空间 引用 删除 coffeexl   /   2008-04-16 09:51:54
create table A(name varchar2(10),age number,birth date)
insert into A values('张三',21,todate('1985-06-21','yyyy-mm-dd')
 

评分:0

我来说两句

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 8491
  • 日志数: 14
  • 书签数: 2
  • 建立时间: 2008-03-13
  • 更新时间: 2008-11-28

RSS订阅

Open Toolbar