FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为 --INTEGER/MONEY/REAL/FLOAT 类型
ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据 --类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为 --INTEGER/MONEY/REAL/FLOAT 类型
SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型 --与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 PI() --返回值为π 即3.1415926535897936
RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数
----字符串函数----
ASCII() --函数返回字符表达式最左端字符的ASCII 码值 CHAR() --函数用于将ASCII 码转换为字符
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值 LOWER() --函数把字符串全部转换为小写 UPPER() --函数把字符串全部转换为大写 STR() --函数把数值型数据转换为字符型数据 LTRIM() --函数把字符串头部的空格去掉 RTRIM() --函数把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串
CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置 SOUNDEX() --函数返回一个四位字符码
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值
DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异 --0 两个SOUNDEX 函数返回值的第一个字符不同 --1 两个SOUNDEX 函数返回值的第一个字符相同 --2 两个SOUNDEX 函数返回值的第一二个字符相同 --3 两个SOUNDEX 函数返回值的第一二三个字符相同 --4 两个SOUNDEX 函数返回值完全相同
QUOTENAME() --函数返回被特定字符括起来的字符串 /*select quotename('abc', '{') quotename('abc') 运行结果如下
----------------------------------{ {abc} [abc]*/
REPLICATE() --函数返回一个重复character_expression 指定次数的字符串 /*select replicate('abc', 3) replicate( 'abc', -2) 运行结果如下
----------- ----------- abcabcabc NULL*/
REVERSE() --函数将指定的字符串的字符排列顺序颠倒 REPLACE() --函数返回被替换了指定子串的字符串 /*select replace('abc123g', '123', 'def') 运行结果如下 ----------- ----------- abcdefg*/
SPACE() --函数返回一个有指定长度的空白字符串
STUFF() --函数用另一子串替换字符串指定位置长度的子串
----数据类型转换函数---- CAST() 函数语法如下
CAST() (
CONVERT() (
select cast(100+99 as char) convert(varchar(12), getdate()) 运行结果如下
------------------------------ ------------ 199 Jan 15 2000
----日期函数----
DAY() --函数返回date_expression 中的日期值 MONTH() --函数返回date_expression 中的月份值 YEAR() --函数返回date_expression 中的年份值 DATEADD(
--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期 DATEDIFF(
--函数返回两个指定日期在datepart 方面的不同之处
DATENAME(
----系统函数----
APP_NAME() --函数返回当前执行的应用程序的名称
COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值
COL_LENGTH(<'table_name'>, <'column_name'> ) --函数返回表中指定字段的长度值 COL_NAME(,
DB_NAME(database_id) --函数返回数据库的名称 HOST_ID() --函数返回服务器端计算机的名称 HOST_NAME() --函数返回服务器端计算机的名称
IDENTITY(
--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中
/*select identity(int, 1, 1) as column_name into newtable from oldtable*/
ISDATE() --函数判断所给定的表达式是否为合理日期
ISNULL(
ISNUMERIC() --函数判断所给定的表达式是否为合理的数值 NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值 NULLIF(
--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值
Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:
函数 Oracle Microsoft SQL Server 把字符转换为ASCII ASCII ASCII
字串连接 CONCAT (expression + expression) 把ASCII转换为字符 CHR CHAR
返回字符串中的开始字符(左起) INSTR CHARINDEX 把字符转换为小写 LOWER LOWER 把字符转换为大写 UPPER UPPER 填充字符串的左边 LPAD N/A 清除开始的空白 LTRIM LTRIM 清除尾部的空白 RTRIM RTRIM
字符串中的起始模式(pattern) INSTR PATINDEX 多次重复字符串 RPAD REPLICATE
字符串的语音表示 SOUNDEX SOUNDEX 重复空格的字串 RPAD SPACE
从数字数据转换为字符数据 TO_CHAR STR 子串 SUBSTR SUBSTRING 替换字符 REPLACE STUFF
将字串中的每个词首字母大写 INITCAP N/A 翻译字符串 TRANSLATE N/A
字符串长度 LENGTH DATELENGTH or LEN 列表中最大的字符串 GREATEST N/A 列表中最小的字符串 LEAST N/A
如果为NULL则转换字串 NVL ISNULL
日期函数
函数 Oracle Microsoft SQL Server 日期相加 (date column +/- value) or ADD_MONTHS DATEADD
两个日期的差 (date column +/- value) or MONTHS_BETWEEN DATEDIFF
当前日期和时间 SYSDATE GETDATE() 一个月的最后一天 LAST_DAY N/A 时区转换 NEW_TIME N/A
日期后的第一个周日 NEXT_DAY N/A
代表日期的字符串 TO_CHAR DATENAME 代表日期的整数 TO_NUMBER (TO_CHAR)) DATEPART
日期舍入 ROUND CONVERT 日期截断 TRUNC CONVERT
字符串转换为日期 TO_DATE CONVERT 如果为NULL则转换日期 NVL ISNULL
转换函数
函数 Oracle Microsoft SQL Server 数字转换为字符 TO_CHAR CONVERT 字符转换为数字 TO_NUMBER CONVERT 日期转换为字符 TO_CHAR CONVERT 字符转换为日期 TO_DATE CONVERT
16进制转换为2进制 HEX_TO_RAW CONVERT 2进制转换为16进制 RAW_TO_HEX CONVERT
其它行级别的函数
函数 Oracle Microsoft SQL Server
返回第一个非空表达式 DECODE COALESCE 当前序列值 CURRVAL N/A 下一个序列值 NEXTVAL N/A
如果exp1 = exp2, 返回null DECODE NULLIF 用户登录账号ID数字 UID SUSER_ID 用户登录名 USER SUSER_NAME 用户数据库ID数字 UID USER_ID
用户数据库名 USER USER_NAME
当前用户 CURRENT_USER CURRENT_USER 用户环境(audit trail) USERENV N/A
在CONNECT BY子句中的级别 LEVEL N/A
合计函数
函数 Oracle Microsoft SQL Server Average AVG AVG
Count COUNT COUNT Maximum MAX MAX Minimum MIN MIN
Standard deviation STDDEV STDEV or STDEVP Summation SUM SUM
Variance VARIANCE VAR or VARP
Oracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:
EXTRACT(YEAR FROM 日期)
SQLServer和Oracle的常用函数对比
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from dual