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