一、数学函数
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
5.四舍五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from dual 1.2346
6.e为底的幂
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from dual 2.71828182
7.取e为底的对数
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from dual; 1
8.取10为底对数
S:select log10(10) value 1
O:select log(10,10) value from dual; 1
9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from dual 16
10.取平方根
S:select SQRT(4) value 2
O:select SQRT(4) value from dual 2
11.求任意数为底的幂
S:select power(3,4) value 81
O:select power(3,4) value from dual 81
12.取随机数
S:select rand() value
O:select sys.dbms_random.value(0,1) value from dual;
13.取符号
S:select sign(-8) value -1
O:select sign(-8) value from dual -1
14.圆周率
S:SELECT PI() value 3.1415926535897931
O:select acos(-1) PI from dual; select exp(1) e from dual;
15.sin,cos,tan 参数都以弧度为单位
例如:select sin(PI()/2) value 得到1(SQLServer)
16.Asin,Acos,Atan,Atan2 返回弧度
17.弧度角度互换(SQLServer,Oracle未知)
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
二、数值间比较
18. 求集合最大值
S:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select greatest(1,-2,4,3) value from dual
19. 求集合最小值
S:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a
O:select least(1,-2,4,3) value from dual
20.如何处理null值(F2中的null以10代替)
S:select F1,IsNull(F2,10) value from Tbl
O:select F1,nvl(F2,10) value from Tbl
21.求字符序号
S:select ascii(''a'') value
O:select ascii(''a'') value from dual
22.从序号求字符
S:select char(97) value
O:select chr(97) value from dual
23.连接
S:select ''11''+''22''+''33'' value
O:select CONCAT(''11'',''22'')||33 value from dual
23.子串位置 --返回3
S:select CHARINDEX(''s'',''sdsq'',2) value
O:select INSTR(''sdsq'',''s'',2) value from dual
23.模糊子串的位置 --返回2,参数去掉中间%则返回7
S:select patindex(''%d%q%'',''sdsfasdqe'') value
O:oracle没发现,但是instr可以通过第四个参数控制出现次数
select INSTR(''sdsfasdqe'',''sd'',1,2) value from dual 返回6
24.求子串
S:select substring(''abcd'',2,2) value
O:select substr(''abcd'',2,2) value from dual
25.子串代替 返回aijklmnef
S:SELECT STUFF(''abcdef'', 2, 3, ''ijklmn'') value
O:SELECT Replace(''abcdef'', ''bcd'', ''ijklmn'') value from dual
26.子串全部替换
S:没发现
O:select Translate(''fasdbfasegas'',''fa'',''我'' ) value from dual
27.长度
S:len,datalength
O:length
28.大小写转换 lower,upper
29.单词首字母大写
S:没发现
O:select INITCAP(''abcd dsaf df'') value from dual
30.左补空格(LPAD的第一个参数为空格则同space函数)
S:select space(10)+''abcd'' value
O:select LPAD(''abcd'',14) value from dual
31.右补空格(RPAD的第一个参数为空格则同space函数)
S:select ''abcd''+space(10) value
O:select RPAD(''abcd'',14) value from dual
32.删除空格
S:ltrim,rtrim
O:ltrim,rtrim,trim
33. 重复字符串
S:select REPLICATE(''abcd'',2) value
O:没发现
34.发音相似性比较(这两个单词返回值一样,发音相同)
S:SELECT SOUNDEX (''Smith''), SOUNDEX (''Smythe'')
O:SELECT SOUNDEX (''Smith''), SOUNDEX (''Smythe'') from dual
SQLServer中用SELECT DIFFERENCE(''Smithers'', ''Smythers'') 比较soundex的差
返回0-4,4为同音,1最高日期函数
35.系统时间
S:select getdate() value
O:select sysdate value from dual
36.前后几日
直接与整数相加减
37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from dual
select to_char(sysdate,''yyyy-mm-dd'') value from dual
38.求时间
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,''hh24:mm:ss'') value from dual
39.取日期时间的其他部分
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不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S无效)
minute mi, n (n O无效)
second ss, s (s O无效)
millisecond ms (O无效)
----------------------------------------------
40.当月最后一天
S:未知
O:select LAST_DAY(sysdate) value from dual
41.本星期的某一天(比如星期日)
S:未知
O:SELECT Next_day(sysdate,7) vaule FROM DUAL;
42.字符串转时间
S:可以直接转或者select cast(''2004-09-08''as datetime) value
O:SELECT To_date(''2004-01-05 22:09:38'',''yyyy-mm-dd hh24-mi-ss'') vaule FROM DUAL;
43.求两日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用两个日期相减(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;
44.根据差值求新的日期(比如分钟)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL;
45.求不同时区时间
S:未知
O:SELECT New_time(sysdate,''ydt'',''gmt'' ) vaule FROM DUAL;
-----时区参数,北京在东8区应该是Ydt-------
AST ADT 大西洋标准时间
BST BDT 白令海标准时间
CST CDT 中部标准时间
EST EDT 东部标准时间
GMT 格林尼治标准时间
HST HDT 阿拉斯加?夏威夷标准时间
MST MDT 山区标准时间
NST 纽芬兰标准时间
PST PDT 太平洋标准时间
YST YDT YUKON标准时间
本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://web.hackbase.com/tech/2011-11-16/65546.html
分享到:
相关推荐
- SQL Server函数不支持OUT参数,不支持在函数内部进行数据的增删改操作,也不支持动态SQL。调用函数时,需要在函数名前加上dbo.。 4. **游标**: - Oracle的游标声明使用 `DECLARE cursor 游标名 is select语句`...
Oracle以版本号如10g、11g、12c、19c等进行区分,而SQL Server则以年份命名,如SQL Server 2008、2012、2016、2019等。每个新版本都会带来性能提升、新功能和增强的安全性。 3. **实例、数据库和表空间**: 在...
Oracle 对字符区分大小写,默认对字符不区分大小写,也可以修改数据库配置支持区分大小写,而 SQL Server 不区分大小写。 序列 Oracle 中有序列 sequence 对象,无自动增长列,而 SQL Server 中无序列对象,表中有...
自定义函数的定义上,Oracle同样使用`CREATE OR REPLACE FUNCTION`,支持动态SQL和对数据的增删改操作,而SQL Server的函数不支持出参,也不支持动态SQL。调用时,Oracle直接使用函数名,而SQL Server需在函数名前...
在IT行业中,数据库管理系统是核心组件之一,Oracle和SQL Server是两种广泛应用的关系型数据库系统。它们在语法上有诸多差异,这些差异主要体现在存储过程、自定义函数、游标、变量、赋值、语句结束符以及大小写敏感...
- **Sqlserver**、**Oracle**、**MySql**、**PostgreSql** 和 **SqlLite** 都提供了丰富的内置函数支持,包括数学、日期时间、字符串处理等多方面功能。 #### 五、分页 分页是数据库中常见的需求之一,不同的...
索引方面,Oracle 提供多种类型的索引,包括 B+树、位图、函数索引等,而 SQL Server 区分聚集和非聚集索引。 事务处理上,Oracle 采用定点回滚,支持保存点以精确控制事务。SQL Server 则在事务失败时回滚到事务...
- **SQL Server** 有 INT、VARCHAR、DATETIME、TIMESTAMP 等类型,其 DATETIME 区分日期和时间部分,而 TIMESTAMP 类型在 SQL Server 中表示版本信息而非日期时间。 3. **事务管理**: - **Oracle** 的事务控制...
它支持多种数据库连接类型,不仅限于Oracle数据库,还包括SQL Server、MySQL、DB2等。通过其直观的用户界面,用户可以方便地执行SQL语句,管理数据库对象,以及进行数据迁移和数据同步。 2. 版本信息: 版本号20.2...
2或者sqlserver, mssqlserver数据库,不区分大小写,需java1.6及以上版本 3或者mysql, mysql数据库,不区分大小写,需java1.5及以上版本 4或者sybase, sybase数据库,不区分大小写(暂未测试) -url 数据库连接的url....
Oracle数据库系统提供了NVL和NVL2函数,而SQL Server则有ISNULL函数来处理这种情况。下面我们将深入探讨这些函数的工作原理、用法以及它们之间的差异。 1. Oracle的NVL函数 Oracle的NVL函数用于处理NULL值,其语法...
2. **语法高亮和错误检查**:通过颜色区分不同类型的SQL元素,使代码更易于阅读。同时,插件会实时检测语法错误,帮助用户在编写过程中即时发现并修正问题。 3. **智能提示**:在编写复杂查询时,插件可以提供智能...
6. 数据仓库功能:这是在高端数据库系统如Oracle中才有的特性,SQL Server也具备此功能,用于数据分析和决策支持。 SQL Server 2000提供了不同版本来满足不同用户的需求,包括: - 企业版:适用于大型企业,提供...
以上知识点涵盖了比较常用的一些SQL函数,分别针对字符串处理、数值运算、数据类型转换、日期时间处理和条件逻辑等各个方面,这些函数是进行数据库查询和数据处理时不可或缺的工具。在实际开发过程中,熟练掌握这些...
- 包内过程和函数的命名遵循前述存储过程/函数章节的规定。 **总结** 以上规范涵盖了数据库设计的关键方面,包括数据设计的基本原则、字段设计的具体要求以及各种数据库对象的命名规范。遵循这些规范可以帮助开发...
#### 五、如何区分Oracle 64-bit 和 32-bit 版本 可以通过SQL*Plus命令来确定Oracle版本是32位还是64位。具体步骤如下: ```sql SQL> / as sysdba SQL> select * from v$version; ``` 输出结果中会包含版本信息,...
在SQL Server的历史版本中,分区的实现和优化经历了多个阶段。在早期版本中,分区技术实现复杂且未能提升性能。而从SQL Server 2000开始,增加了对分区视图的数据修改支持,并改善了查询性能。SQL Server 2005进一步...
在实际操作中,确保所有涉及Oracle的SQL语句中的表名和列名都使用大写字母,因为Oracle默认是区分大小写的。同时,正确配置Oracle的数据源(如示例中的`INPLAN`和`ERP`),确保能够连接到正确的Oracle实例和SID。 ...
- oracle+110个常用函数.doc:涵盖了Oracle中的大量函数,这些函数对于日常查询和数据处理至关重要。 - oracle行转列.doc:再次强调了Oracle中的行转列技术,可能包括了不同的实现方法和实例。 - oracle_行转列的...