您的位置:首页 > 数据库

SQL字符串操作函数及示例

2017-05-19 11:48 387 查看

REPLACE()

语法:REPLACE(‘string_replace1’,’string_replace2’,’string_replace3’)

”string_replace1” 待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。

”string_replace2” 待查找的字符串表达式。string_replace2 可以是字符数据或二进制数据。

”string_replace3” 替换用的字符串表达式。string_replace3 可以是字符数据或二进制数据。

返回类型

如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。

示例:replace(Comments, ‘产品:’, ”) 将Comments中的“产品:”替换为空‘’。

SUBSTRING()

语法:SUBSTRING ( expression, start, length )

expression是原字段名称,start是开始索引,length是截取长度。

示例:select substring(‘helloworld’,4,3)

返回结果:low

CHARINDEX()

语法:CHARINDEX ( expression1 , expression2 [ , start_location ] )

Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。

CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么函数返回0。

此函数不能用于TEXT 和IMAGE 数据类型。

PATINDEX()

返回字符串中某个指定的子串出现的开始位置。

PATINDEX (’%substring expression%’, column name)

与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。

1.PATINDEX ( ‘%pattern%’ , expression ) 类似于like ‘%pattern%’,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出现的位置。

2.PATINDEX ( ‘%pattern’ , expression ) 类似于like ‘%pattern’,前面用模糊查找,也就是查找pattern的结束所在expression的位置,也就是从后面匹配起查找。

3.PATINDEX ( ‘pattern%’ , expression ) 类似于like ‘pattern%’,前面用精确查找,后面模糊查找,也就相当于查询pattern首次出现的位置

4.PATINDEX ( ‘pattern’ , expression ) 精确匹配查找,也就是patttern,expression完全相等,不然返回0。

LEFT()/RIGHT()

LEFT (character_expression,integer_expression)

返回character_expression 左起 integer_expression 个字符。

STUFF()

SELECT STUFF(‘abcde’,2,3,’55555555’)

通过在第一个字符串 (abcde) 中删除从第二个位置(字符 b)开始的三个字符(字符bcd),

然后在删除的起始位置插入第二个字符串,创建并返回一个字符串(a55555555e)。

LTRIM()/RTRIM()

sql语法中没有直接去除两头空格的函数,但有ltrim()去除左空格rtrim()去除右空格。

合起来用就是sql的trim()函数,即select ltrim(rtrim(UsrName))

UPPER()/LOWER()

upper获取字母大写形式,Lower获取字母小写形式。

示例:upper(‘this database is a little complex.’)

ASCII()

返回字符表达式最左端字符的ASCII码值

SELECT ASCII(‘this is a table’)

结果:116

CHAR()

将ASCII码转换为字符。如果输入的ASCII值不在0~255之间,CHAR()就会返回NULL。

select char(116)

结果:t

STR()

把数值型数据转换为字符型数据。

STR (float_expression[,length[, decimal]])

length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。

当length 或者decimal 为负值时,返回NULL;

当length 小于小数点左边(包括符号位)的位数时,返回length 个*;

先服从length ,再取decimal ;

当返回的字符串位数小于length,左边补足空格。

REVERSE()

将指定的字符串的字符排列顺序颠倒。

REVERSE (character_expression)

其中character_expression可以是字符串、常数或一个列的值。

如:SELECT REVERSE(‘abcd’)

返回结果:dcba

REPLICATE()

返回一个重复character_expression指定次数的字符串。

REPLICATE(character_expression, integer_expression)

如果integer_expression值为负值,返回NULL。

如:SELECT REPLICATE(‘AB’,2)

返回结果:ABAB

SPACE()

返回一个有指定长度的空白字符串。

SPACE (integer_expression)

如果integer_expression值为负值,返回NULL。

QUOTENAME()

返回被特定字符括起来的字符串。

QUOTENAME (’character_expression’[, quote_ character])

其中quote_character标明括字符串所用的字符,缺省值为“[]”。

如:SELECT QUOTENAME(‘aabb’,’{}’)

返回结果:{aabb}

CAST()

CAST (expression AS data_ type[ length ])

如:

SELECT CAST(‘200’ AS FLOAT)

SELECT CAST(‘200’ AS NVARCHAR(10))

CONVERT()

CONVERT (data_ type[ length ], expression [, style])

1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。

2)length用于指定数据的长度,缺省值为30。

3)把char或varchar类型转换为诸如int或smallint这样的integer类型、结果必须是带正号或负号的数值。

4)text类型到char或varchar类型转换最多为8000个字符,即char或varchar数据类型是最大长度。

5)image类型存储的数据转换到binary或varbinary类型,最多为8000个字符。

6)把整数值转换为money或smallmoney类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。

7)bit类型的转换把非零值转换为1,并仍以bit类型存储。

8)试图转换到不同长度的数据类型,会截断转换值并在转换值后显示“+”,以标识发生了这种截断。

9)用convert()函数的style 选项能以不同的格式显示日期和时间。style 是将datetime和smalldatetime数据转换为字符串时所选用的由SQL Server系统提供的转换样式编号,不同的样式编号有不同的输出格式。

ISNUMERIC()

ISNUMERIC(COLUMN_Name)

查询是数字的记录:

SELECT * FROM TABLE WHERE ISNUMERIC(COLUMN)=1

查询非数字的记录:

SELECT * FROM TABLE WHERE ISNUMERIC(COLUMN)=0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql 函数