ANSI字符函数
字符函数用于在SQL里以不同于存储方式的格式来表示字符串。串接就是把两个单独的字符串组合为一个。
1.常用字符函数
(1)串接函数
SQL Server: SELECT 'A' + 'B' Oracle:SELECT 'A' || 'B' (仅限2个) MySQL:SELECT CONCAT('A', 'B', ……)
(2)TRANSLATE函数
TRANSLATE函数搜索字符串里的字符并查找特定的字符,标记找到的位置,然后用替代字符串里对应的字符替换它。
SQL Server:
SELECT NAME, TRANSLATE(NAME, 'OLD', 'NEW')所有的O都被替换为N,所有的L都被替换为E,所有的D都被提替换为W
(3)REPLACE
REPLACE函数用于把某个字符或字符串替换为指定的字符或字符串REPLACE(COLUMN, 'A', 'B')
(4)UPPER
UPPER函数用于把字符串里的小写字母转换为大写字母。
SQL Server:SELECT UPPER(COLUMN_NAME) FROM TABLE_NAME
(5)LOWER
(6)SUBSTR
用于获取子字符串的函数SQL Server:SELECT SUBSTRING(COLUMN_NAME, 1, 3) FROM TABLE_NAME (从1个开始, 一共截取3个,即是第1,2,3个字符)Oracle: SELECT SUBSTR(COLUMN_NAME, 1, 3) FROM TABLE_NAMEMySQL:同SQL Server
(7)INSTR
INSTR函数用于在字符串里寻找指定的字符集,返回其所在的位置。SELECT INSTR(COLUMN_NAME, 'XXX', [ START POSITION ], [ OCCURRENCE ]) (Oracle和MySQL中有效)SQL Server中需要使用CHARINDEX函数
(8)LTRIM
(9)RTRIM
(10)DECODE
DECODE函数不是ANSI标准里的,但功能很强大。主要用于ORACLE和PostgreSQL。它可以在字符串里搜索一个值或字符串,如果找到了就在结果里显示另一个字符串。DECODE(COLUMN_NAME, 'SEARCH1', 'RETURN1',[ 'SEARCH2', 'RETURN2' , 'DEFAULT VALUE'])3DEFAULT VALUE为OTHER
2.其他字符函数
(1)LENGTH
(2)IFNULL
IFNULL函数用于在一个表达式是NULL时从另一个表达式获得值。它可以用于大多数数据类型,但值与替换值必须是同一类型。IFNULL('VALUE', 'SUBSTITUTION')
(3)COALESCE
与IFNULL基本相同不同点在于它可以接收一个数据集。
(4)LPAD
用于在字符串左侧添加字符或空格
LPAD(COLUMN_NAME, 50, '%') 左侧添加%使其到达50位
(5)RPAD
(6)ASCII
返回ASCII
3.算数函数
常见的有:绝对值:(ABS)舍入:(ROUND)平方根:(SQRT)符号:(SIGN)幂:(POWER)上限和下限:(CEIL, FLOOR)指数:(EXP)SIN , COS , TAN
4.转换函数
(1)字符串转换为数字
Oracle中:TO_NUMBER()
(2)数字转换为字符串
SQL Server:STR()Oracle中:TO_CHAR()
5.字符函数的组合使用