Sql字符串操作函数大全
本文导语: 首先,第一个问题: select * from itemcode where code like '40%' 如何让code=40101001 变成code=401-01-001 目前有666个CODE是类似40101001 用什么语句能把它变成401-01-001 解答: update itemcode set code=replace(code,left(code,8),left(code,3)+'-'+substring(...
首先,第一个问题:
select * from itemcode
where code like '40%'
如何让code=40101001
变成code=401-01-001
目前有666个CODE是类似40101001
用什么语句能把它变成401-01-001
解答:
update itemcode set code=replace(code,left(code,8),left(code,3)+'-'+substring(code,4,2)+'-'+substring(code,6,3)) where code like '40%'
问题2:
replace(code,left(code,8),left(code,3)+'-'+substring(code,4,2)+'-'+substring(code,6,3))是什么意思?
解答:
拿 code=123456789 做例子
a = left(code,8) = 12345678
b = left(code,3) = 123
c = substring(code,4,2) = 45
d = substring(code,6,3) = 678
e = b+'-'+c+'-'+e = 123-45-678
f = replace(code,a,e) = 123-45-6789
配合下边的来看,应该能明白了
1、left(code,8) 取前8位
2、substring(code,4,2) 从第4位开始取2位
3、+ 是字符串连接符
4、replace(a,str1,str2) 将a中的str1替换为str2
附:
sql server常用字符串操作函数
1:replace 函数
第一个参数你的字符串,第二个参数你想替换的部分,第三个参数你要替换成什么
select replace('lihan','a','b')
-----------------------------
lihbn
(所影响的行数为 1 行)
2:substring函数
第一个参数你的字符串,第二个是开始替换位置,第三个结束替换位置
select substring('lihan',0,3);
-----
li
(所影响的行数为 1 行)
3:charindex函数
第一个参数你要查找的char,第二个参数你被查找的字符串 返回参数一在参数二的位置
select charindex('a','lihan')
-----------
4
(所影响的行数为 1 行)
4:ASCII函数
返回字符表达式中最左侧的字符的 ASCII 代码值。
select ASCII('lihan')
-----------
108
(所影响的行数为 1 行)
5:nchar函数
根据 Unicode 标准的定义,返回具有指定的整数代码的 Unicode 字符。
参数是介于 0 与 65535 之间的正整数。如果指定了超出此范围的值,将返回 NULL。
select nchar(3213)
----
unicode字符
(所影响的行数为 1 行)
6:soundex
返回一个由四个字符组成的代码 (SOUNDEX),用于评估两个字符串的相似性。
SELECT SOUNDEX ('lihan'), SOUNDEX ('lihon');
----- -----
L546 L542
(所影响的行数为 1 行)
7:char
参数为介于 0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回 NULL 值。
SELECT char(125)
----
}
(所影响的行数为 1 行)
8:str函数
第一个参数必须为数字,第二个参数表示转化成char型占的位置,小于参数一位置返回*,大于右对齐
SELECT str(12345,3)
----
***
(所影响的行数为 1 行)
SELECT str(12345,12)
------------
12345
(所影响的行数为 1 行)
9:difference函数
返回一个整数值,指示两个字符表达式的 SOUNDEX 值之间的差异。
返回的整数是 SOUNDEX 值中相同字符的个数。返回的值从 0 到 4 不等:0 表示几乎不同或完全不同,4 表示几乎相同或完全相同。
SELECT difference('lihan','liha')
-----------
3
(所影响的行数为 1 行)
10:stuff函数(四个参数)
函数将字符串插入另一字符串。它在第一个字符串中从开始位置删除指定长度的字符;然后将第二个字符串插入第一个字符串的开始位置。
SELECT stuff('lihan',2,3,'lihan')
--------
llihann
(所影响的行数为 1 行)
11:left函数
返回最左边N个字符,由参数决定
select left('lihan',4)
-----
liha
(所影响的行数为 1 行)
12: right函数
返回最右边N个字符,由参数决定
select right('lihan',4)
-----
ihan
(所影响的行数为 1 行)
13:replicate函数
我的认为是把参数一复制参数二次
select replicate('lihan',4)
--------------------
lihanlihanlihanlihan
(所影响的行数为 1 行)
14:len函数
返回参数长度
select len('lihan')
-----------
5
(所影响的行数为 1 行)
15:reverse函数
反转字符串
select reverse('lihan')
-----
nahil
(所影响的行数为 1 行)
16:lower和upper函数
参数大小写转化
select lower(upper('lihan'))
--------------------
lihan
(所影响的行数为 1 行)
17:ltrim和rtrim函数
删除左边空格和右面空格
select ltrim(' lihan ')
--------------------------
lihan
(所影响的行数为 1 行)
select rtrim(' lihan')
---------
lihan
(所影响的行数为 1 行)