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;nU一、字符转换函数
:u-M JN*L
iz01、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软件测试网nrp1mZ'P8_y'|
当返回的字符串位数小于length ,左边补足空格。
aw-iE [8D0二、去空格函数51Testing软件测试网@c;gj
x:po q9X
1、LTRIM() 把字符串头部的空格去掉。51Testing软件测试网1@4z)C ]x*{
51Testing软件测试网*J},P w
@dCIB0I2、RTRIM() 把字符串尾部的空格去掉。
)aa
T*\L0mLhPR?3l,X,h0三、取子串函数
$Y8{[udq*{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软件测试网JfzEio
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)tT*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%qxVI'a4T
'F4h,EPoKR0五、字符串操作函数51Testing软件测试网'D,m!VX8iW
tl
1、QUOTENAME()51Testing软件测试网%k*X0]3kkwS4w7o.f
返回被特定字符括起来的字符串。
%z.^1Z
i0mu7z@7K N0QUOTENAME (<’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
G P
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\#R4、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$mk6MW,y
W8qv,eu E04、SPACE()51Testing软件测试网(QP4sM7Y
返回一个有指定长度的空白字符串。
|+Zxb.I ]
@/a8u,fm0SPACE (<integer_expression>) 如果integer_expression 值为负值,则返回NULL 。51Testing软件测试网@${~9Oaw @lRg#y
51Testing软件测试网$|wj%}4X2I-d4@*cw6K5、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
Z0C
U9~2mLD9Y051Testing软件测试网.]W
KD2z%}N六、数据类型转换函数51Testing软件测试网7}[z*Y1g
1、CAST()51Testing软件测试网V%Da|+mxB"~\
CAST (<expression> AS <data_ type>[ length ])
o6D6vtL&e#B0u;FB(bOm02、CONVERT()51Testing软件测试网7u/`TK'@
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
RbCK a YJ
返回date_expression中的日期值51Testing软件测试网;bA9]
Ke
cL%g F
51Testing软件测试网(D"MI$ehz.loTk2、month(date_expression)51Testing软件测试网]~/qm"X
返回date_expression中的月份值
YX](?-H/{t0P+m |k$qC:{6KF(zC03、year(date_expression)
1eT3K;wA(_~O?0 返回date_expression中的年份值
U+R9M0Z"LB+gqL051Testing软件测试网_s-Ig8x4D B{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;[5ods+A"@Ft6、DATENAME()51Testing软件测试网NZyOl0n d/e9bN/o
DATENAME (<datepart>, <date>)51Testing软件测试网:Z5Ky
`y8a&m]S
以字符串的形式返回日期的指定部分此部分。由datepart 来指定。51Testing软件测试网sqA#jJ!CV7l
51Testing软件测试网;C K%v$Yh7、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
P KZ7H