这篇博客作为记录 SQL 的函数的使用方法,想到哪里用到哪里就写到哪里。。。
SubString():用于截取指定字符串的方法。该方法有三个参数:
参数1:用于指定要操作的字符串。
参数2:用于指定要截取的字符串的起始位置,起始值为 1 。
参数3:用于指定要截取的长度。
代码如下 | 复制代码 |
selectsubstring('abcdef',1,3) -- 返回 abc selectsubstring('123456321',0,2) -- 返回 1,即第一位,最好不要这样做 |
Left():用于返回指定字符串中指定长度的左侧部分。该方法有两个参数:
参数1:用于指定要操作的字符串。
参数2:用于指定要返回的子字符串的长度。
代码如下 | 复制代码 |
selectLEFT('abc123',3) -- 返回 abc selectLEFT('左侧部分右侧部分',4) -- 返回 左侧部分 |
Right():用于返回指定字符串中指定长度的右侧部分。该方法有两个参数:
参数1:用于指定要操作的字符串。
参数2:用于指定要返回的子字符串的长度。
代码如下 | 复制代码 |
selectRIGHT('abc123',3) -- 返回 123 selectRIGHT('左侧部分右侧部分',4) -- 返回 右侧部分 |
CharIndex():用于返回指定字符串中指定子字符串出现的起始位置。如果未找到就返回 0。该方法有两个参数:
参数1:用于指定要进行查找的字符串。
参数2:用于指定用作检索的字符串。
代码如下 | 复制代码 |
selectcharindex('a','123a123') -- 返回 4 selectcharindex('abc','123a123') -- 返回 0 selectcharindex('abc','123abc123') -- 返回 4 |
Stuff():用于删除指定长度的字符,并在删除的位置插入新的字符/值。该方法有四个参数:
参数1:用于指定要操作的字符串。
参数2:用于指定要删除字符的起始位置。
参数3:用于指定要删除字符的长度。
参数4:用于指定在删除的位置插入的新的字符串/值。
代码如下 | 复制代码 |
selectstuff('123abc456',4,3,'ABC') -- 返回 123ABC456 selectstuff('123abc456',1,3,'') -- 返回 abc456,用空字符串替代 |
Len():用于返回指定文本的值的长度。前导空格计算在内,尾随空格不计算在内。该方法有一个参数:
参数1:用于指定要操作的文本或字符串。
代码如下 | 复制代码 |
selectlen('123') -- 返回 3 selectlen('字符串') -- 返回 3 |
Difference():用于返回一个整数值,指示两个字符表达式的 SOUNDEX 值之间的差异。(即两个字符串的相似度)那么什么是 SOUNDEX 值呢?先记着,下面轮到它了。
返回的值从 0 到 4 不等:0 表示几乎不同或完全不同,4 表示几乎相同或完全相同。该方法有两个参数:
参数1:用于指定要进行比对的第一个字符串 SOUNDEX 值 。
参数2:用于指定要进行比对的第二个字符串 SOUNDEX 值。
代码如下 | 复制代码 |
selectdifference('action','demo') -- 返回 2 selectdifference('123456','整数') -- 返回 4 |
Soundex():用于返回指定字符串的 SOUNDEX 值。SOUNDEX是一种语音算法,利用英文字的读音计算近似值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,可用 Soundex 做类似模糊匹配的效果。这里的模糊匹配跟 LIKE 不同。
算法简要说明:
-- 将英文字按以下规则替换(不使用第一个字符进行匹配,并且不使用对应值为 0 的英文字符的值)
代码如下 | 复制代码 |
a e h i o u w y -> 0 b f p v -> 1 c g j k q s x z -> 2 d t -> 3 l -> 4 m n -> 5 r -> 6 |
如果字符串中存在拥有相同对应数字的2个或以上的字母在一起(例如 j 和 k),则删除其他的,只保留1个。去除对应值为 0 的字符,只返回前4个字节,不够用 0 填充。
代码如下 | 复制代码 |
selectsoundex('string') -- 返回 S215 selectsoundex('str') -- 返回 S210 selectsoundex('123') -- 返回 0000 selectsoundex('字符串') -- 返回 0000 |
PS:除英文字符以外的字符都将返回 0000,所以上面的方法 Difference() 的第二个示例会返回4(表示完全相同)。
Lower():用于返回指定英文字符串的小写形式的字符串。如果不为英文字符串,则返回原值。该方法有一个参数:
参数1:用于指定要转换为小写形式的字符串。
代码如下 | 复制代码 |
selectlower('ABC') -- 返回 abc selectlower('123') -- 返回 123 |
Upper():用于返回指定英文字符串的大写形式的字符串。如果不为英文字符串,则返回原值。该方法有一个参数:
参数1:用于指定要转换为大写形式的字符串。
代码如下 | 复制代码 |
selectupper('abc') -- 返回 ABC selectupper('123') -- 返回 123 |
Ltrim():用于返回删除前导空格之后的字符串。该方法有一个参数:
参数1:用于指定要进行删除前导空格操作的字符串。
代码如下 | 复制代码 |
selectltrim(' 123') -- 返回 123 selectltrim(' 好多空格') -- 返回 好多空格 selectlen(' 123') -- 返回 11 selectlen(ltrim(' 123'))-- 返回 3 selectrtrim('123 ') -- 返回 123 selectlen(rtrim('123 '))-- 返回 3 |
Rtrim():用于返回截断尾随空格之后的字符串。该方法有一个参数:
参数1:用于指定要进行截断尾随空格操作的字符串。
代码如下 | 复制代码 |
selectrtrim('123 ') -- 返回 123 selectlen(rtrim('123 '))-- 返回 3 |
Replace():用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。该方法有三个参数:
参数1:用于指定要操作的字符串,即被匹配的字符串。
参数2:用于指定要进行匹配的字符串。
参数3:用于指定用作替换存在的匹配项的字符串。
代码如下 | 复制代码 |
--把 abc 替换为 xxx selectreplace('123abc456','abc','xxx') -- 返回 123xxx456 -- 用空字符串替换匹配项 selectreplace('123abc456','abc','') -- 返回 123456 |
以上所述是小编给大家介绍的SQL Server 常用函数使用方法小结,希望对大家有所帮助。