关于Oracle和SQL Server之间的区别,已经有很多篇文章从企业的角度和数据库管理员的角度出发描写了两者之间的一般差别.在这篇文章里面,我将会从应用程序的角度向你描述SQL erver 和oracle平台之间的区别,并且将会讨论开发不依赖于数据库环境的应用程序的几种可能的方法.与此同时,我不会再论讨对于应用程序来说,两个平台之间显而易见的区别,例如表的分割和索引.
SQL Server和Oracle的常用函数对比
---------数学函数
①绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
S:select log10(10) value 1
O:select log(10,10) value from dual; 1
①.0.取平方根
①.1.求任意数为底的幂
S:select rand() value
O:select sys.dbms_random.value(0,1) value from dual;
----------三角函数相关
O:不知道
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
---------数值间比较
S:select max(value) value from
(select 1 value
union
S:select min(value) value from
--------字符串函数
S:select ascii('a') value
O:select ascii('a') value from dual
// 本文转自 C++Builder 研究 -
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle没发现,但是instr可以通过第四个参数控制出现次数
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual
S:Replace
O:select Translate('fasdbfasegas','fa','我' ) value from dual
S:len,datalength
O:length
S:没发现
O:select INITCAP('abcd dsaf df') value from dual
S:select space(10)+'abcd' value
S:select 'abcd'+space(10) value
S:ltrim,rtrim
O:ltrim,rtrim,trim
O:没发现
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual
SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差
--------------日期函数
S:select getdate() value
O:select sysdate value from dual
直接与整数相加减
O:select trunc(sysdate) value from dual
select to_char(sysdate,'yyyy-mm-dd') value from dual
S:DATEPART 和 DATENAME 函数 (第一个参数决定)
O:to_char函数 第二个参数决定
参数---------------------------------下表需要补充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O无效)
dayofyear dy, y (O表星期)
day dd, d (d O无效)
week wk, ww (wk O无效)
weekday dw (O不清楚)
minute mi, n (n O无效)
second ss, s (s O无效)
millisecond ms (O无效)
----------------------------------------------
S:不知道
O:select LAST_DAY(sysdate) value from dual
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
AST ADT 大西洋标准时间
BST BDT 白令海标准时间
CST CDT 中部标准时间
EST EDT 东部标准时间
GMT 格林尼治标准时间
HST HDT 阿拉斯加—夏威夷标准时间
MST MDT 山区标准时间
NST 纽芬兰标准时间
PST PDT 太平洋标准时间
YST YDT YUKON标准时间
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
日期函数
日期相加 (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
转换函数
数字转换为字符 TO_CHAR CONVERT
字符转换为数字 TO_NUMBER CONVERT
日期转换为字符 TO_CHAR CONVERT
字符转换为日期 TO_DATE CONVERT
其它行级别的函数
返回第一个非空表达式 DECODE COALESCE
当前序列值 CURRVAL N/A
下一个序列值 NEXTVAL N/A
用户登录账号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
合计函数
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 日期)
遇到大写就加一个空格,假设表名是str
update?str?set?bb=regexp_replace(aa,'([A-Z])',?'?\1')
第一个字段的类型是char(10),它的特点是如果插入的数据不足10位,它都会用空格补足,所以第一条数据的第一个字段被检索出来后是10个空格
你可以试一下
select replace(a,' ','n') from test1;
这里将空格替换为字符n,第一行的结果应该是10个n,第第二段:三行还是你想要的数据么?
那可以不用concat,可以采用||的方式.
比如有A列和B列,要在A列和B列连接的同时在中间加一个空格,可用如下语句:
select A||' '||B from 表名concat在oracle中只可以连接两个字符,如果非要用concat的话,可以采用这种方式:
select concat(concat(A,' '),B) from 表名
COL
------------------
SQL
后面的 \1 是引用正则表达式的第一个组
以上就是土嘎嘎小编为大家整理的oracle怎么添加空格相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!