SQL中常用字符串函数【彩民之家高手论坛】

2019-10-11 12:15 来源:未知

彩民之家高手论坛 1

LEFT

select LEFT('abcdef',3)

 

select LEFT(math,3)from xuesheng

 

其中子串表达式前后必须有百分号“%”否则返回值为0。

SELECT CHARINDEX('bai','www.baidu.com')

SUBSTRING

返回 SQL Server 中的字符、二进制、文本或图像表达式的一部分。

语法:SUBSTRING ( expression ,start , length )

select SUBSTRING(name,1,1)from xuesheng

 

二、去空格函数
1、LTRIM()
Sample:    
SELECT LTRIM(' ABC')
    RETURN VALUE:ABC
2、RTRIM()
Sample:    
SELECT RTRIM('ABC ')
    RETURN VALUE:ABC

--STUFF 将指定位置开始到指定长度的字符串删除之后用另一个字符串在原有位置替换
--STUFF ( character_expression , start , length , replaceWith_expression )
SELECT STUFF('www.baidu.com',5,5,'sogo')

SPACE

返回一串重复的空格

select 'a' SPACE(3) 'b'

 

 

 

CHARINDEX

在一个表达式中搜索另一个表达式,并返回其起始位置(如果没找到,返回’0’)

select CHARINDEX('efg','abcdefgh')

 

select CHARINDEX('8',math)from xuesheng

 

其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。此函数不能用于TEXT 和IMAGE 数据类型。
Sample:
    SELECT CHARINDEX('BC','ABCDE')
    RETURN VALUE:2
    SELECT CHARINDEX('BD','ABCDE')
    RETURN VALUE:0
2**、PATINDEX()**
PATINDEX()函数返回字符串中某个指定的子串出现的开始位置,其语法如下:
PATINDEX (<’%substring _expression%’>, <column_ name>)

彩民之家高手论坛 2

REPLICATE

复制,且能复制0——N次,相当于先剪切后粘贴的过程

select REPLICATE('abc',0)

 

select REPLICATE('abc',3)

 

SQL2000字符处理函数(包含一些常用系统函数)

彩民之家高手论坛 3

REVERSE

翻转

select REVERSE('abcdef')

 

其中第一个码为原字符串的第一个字符,第二到第四个字符则为数字,是该字符串的声音字母所对应的数字,但是忽略了除首字母外的串中的所有元音字母。SOUNDEX()函数可用来查找声音相似的字符串。但SOUNDEX 函数对数字和汉字均只返回0 值。
Sample:
    SELECT SOUNDEX('ABCDE')
    RETURN VALUE:A120
    SELECT SOUNDEX('BCDE')
    RETURN VALUE:B200
    SELECT SOUNDEX('中国')
    RETURN VALUE:0000
4、DIFFERENCE()
DIFFERENCE()函数返回由SOUNDEX()函数返回的两个字符表达式的值的差异。其语法如下:
DIFFERENCE (<character_expression1>, <character_expression2>)
值的差异是用0、 1、 2、 3、 4 来表示的,含义如下:
  0--两个SOUNDEX()函数返回值的第一个字符不同
  1--两个SOUNDEX()函数返回值的第一个字符相同
  2--两个SOUNDEX()函数返回值的第一、二个字符相同
  3--两个SOUNDEX()函数返回值的第一、二、三个字符相同
  4--两个SOUNDEX()函数返回值完全相同
Sample:
    SELECT DIFFERENCE('ABC','ABCDEF')
    RETURN VALUE:3
    SELECT DIFFERENCE('ABC','AABCDEF')
    RETURN VALUE:3
    SELECT DIFFERENCE('ABC','BCDEF')
    RETURN VALUE:2
    SELECT DIFFERENCE('ABC','CDEF')
    RETURN VALUE:2
    SELECT DIFFERENCE('ABC','BDEF')
    RETURN VALUE:2
    SELECT DIFFERENCE('ABC','ADEF')
    RETURN VALUE:3

彩民之家高手论坛 4

REPLACE

查找到一个数据,并替换。(并无修改,只是显示)

语法:REPLACE ( string_expression , string_pattern , string_replacement )

select REPLACE('abcde','c','f')

 

select REPLACE(name,'王','张')from xuesheng

 

update xuesheng set name = REPLACE(name,'王','张')

(可以更改)

 

2**、REPLICATE()
REPLICATE()函数返回一个重复character_expression 指定次数的字符串,其语法如下:
REPLICATE (character_expression integer_expression)
如果integer_expression 值为负值,则REPLICATE()函数返回NULL 串。
Sample:
    SELECT QUOTENAME('ABC[DD]')
    RETURN VALUE:[ABC[DD]]]
3**、REVERSE()
REVERSE()函数将指定的字符串的字符排列顺序颠倒,其语法如下:
REVERSE (<character_expression>)
其中character_expression 可以是字符串、常数或一个列的值。
Sample:
    SELECT REVERSE('ABCDE')
    RETURN VALUE:EDCBA
4**、REPLACE()
REPLACE()函数返回被替换了指定子串的字符串,其语法如下:
REPLACE (<string_expression1>, <string_expression2>, <string_expression3>)
REPLACE()函数用string_expression3 替换在string_expression1 中的子串string_expression2。
Sample:
    SELECT REPLACE('ABCDE','A','FF')
    RETURN VALUE:FFBCDE
5**、SPACE()
SPACE()函数返回一个有指定长度的空白字符串,其语法如下:
SPACE (<integer_expression>)
    如果integer_expression 值为负值,则SPACE()函数返回NULL 串。
Sample:
    SELECT SPACE(5)
    RETURN VALUE:5space
  SELECT SPACE(-5)
  RETURN VALUE:NULL
6、STUFF()
STUF()函数用另一子串替换字符串指定位置、长度的子串,其语法如下:
STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>)
如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则STUFF()函数返回NULL 值。如果length 长度大于character_expression1 的长度,则character_expression1 只保留首字符。
Sample:
    SELECT STUFF('ABCDE',1,2,'FF')
    RETURN VALUE:FFCDE

 案例:

字符串函数

五、字符串操作函数
1**、QUOTENAME()**
QUOTENAME()函数返回被特定字符括起来的字符串,其语法如下:
QUOTENAME (<’character_expression’>[, quote_ character])
    其中quote_ character 标明括字符串所用的字符,如“‘”、“(”、“[” 等,缺省值为“[]”

 

LTRIM

去除左边空格,也就是字符串的前面空格,相当于.net中的trimstart

select LTRIM('   abc   e')

 

与CHARINDEX()函数不同的是,PATINDEX()函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。
Sample:
    SELECT PATINDEX('C','ABCDE')
    RETURN VALUE:0
    SELECT PATINDEX('%C%','ABCDE')
    RETURN VALUE:3
    SELECT PATINDEX('

版权声明:本文由彩民之家高手论坛发布于彩民之家高手论坛,转载请注明出处:SQL中常用字符串函数【彩民之家高手论坛】