Oracle和SQLServer的语法区别(3)
符 返回字符串中的起始INSTR 字符(从左) 将字符转换成小写 LOWER 将字符转换成大写 UPPER 在字符串的左边填充LPAD 字符 删除前导空格 LTRIM 删除尾空格 RTRIM 字符串中模式的起始INSTR 点 多次重复字符串 RPAD 字符串的语音表示 SOUNDEX 重复空格的字符串 RPAD 从数字数据转换而来TO_CHAR 的字符数据 子串 SUBSTR 字符替换 REPLACE 字符串中每个词的第INITCAP 一个字母大写 字符串转换 TRANSLATE 字符串长度 LENGTH 列表中的最大字符串 GREATEST 列表中的最小字符串 LEAST 如果为 NULL,则转换NVL 字符串 CHARINDEX LOWER UPPER 暂缺 LTRIM RTRIM PATINDEX REPLICATE SOUNDEX SPACE STR SUBSTRING STUFF 暂缺 暂缺 DATELENGTH 或 LEN 暂缺 暂缺 ISNULL 日期函数
下面是 Oracle 支持的日期函数及其 Microsoft SQL Server 对等函数。
函数 日期加 日期间的间隔 当前日期和时间 月的最后一天 时区转换 该日期后的第一个工NEXT_DAY 作日 Oracle (日期列 +/- 值)或 ADD_MONTHS (日期列 +/- 值)或 MONTHS_BETWEEN SYSDATE LAST_DAY NEW_TIME Microsoft SQL Server DATEADD DATEDIFF GETDATE() 暂缺 暂缺 暂缺 日期的字符串表示 TO_CHAR DATENAME 日期的整数表示 TO_NUMBER (TO_CHAR)) DATEPART 日期舍入 ROUND CONVERT 日期截尾 TRUNC CONVERT 字符串转换为日期 TO_DATE CONVERT 如果为 NULL,则转换NVL ISNULL 日期 转换函数
下面是 Oracle 支持的转换函数及其 Microsoft SQL Server 对等函数。
函数 数字到字符 字符到数字 日期到字符 字符到日期 十六进制到二进制 二进制到十六进制 Oracle TO_CHAR TO_NUMBER TO_CHAR TO_DATE HEX_TO_RAW RAW_TO_HEX Microsoft SQL Server CONVERT CONVERT CONVERT CONVERT CONVERT CONVERT 其它行级函数
下面是 Oracle 支持的其它行级函数及其 Microsoft SQL Server 对等函数。
函数 Oracle 返回第一个非空表达DECODE 式 当前序列值 CURRVAL 下一个序列值 NEXTVAL 如果表达式 1 = 表达DECODE 式 2,则返回空 用户的登录 ID 号 UID 用户的登录名 USER 用户的数据库 ID 号 UID 用户的数据库名 USER 当前用户 CURRENT_USER 用户环境(审核记录) USERENV CONNECT BY 子句的级LEVEL 别 Microsoft SQL Server COALESCE 暂缺 暂缺 NULLIF SUSER_ID SUSER_NAME USER_ID USER_NAME CURRENT_USER 暂缺 暂缺 合计函数
下面是 Oracle 支持的合计函数及其 Microsoft SQL Server 对等函数。
函数 平均值 计数 最大值 最小值 标准偏差 汇总 方差 Oracle AVG COUNT MAX MIN STDDEV SUM VARIANCE Microsoft SQL Server AVG COUNT MAX MIN STDEV 或 STDEVP SUM VAR 或 VARP 条件测试
Oracle DECODE 语句和 Microsoft SQL Server CASE 表达式都执行条件测试。当 test_value 中的值符合下列任何表达式时,就会返回相关的值。如果不符合,则返回 default_value。如果没有指定 default_value,且不符合任何表达式,则 DECODE 和 CASE 返回 NULL。下表给出了语法以及一个转换的 DECODE 命令的示例。
Oracle DECODE (test_value, expression1, value1 [[,expression2, value2] [U]] [,default_value] ) CREATE VIEW STUDENT_ADMIN.STUDENT_GPA (SSN, GPA) AS SELECT SSN, ROUND(AVG(DECODE(grade ,'A', 4 ,'A+', 4.3 ,'A-', 3.7 ,'B', 3 ,'B+', 3.3 ,'B-', 2.7 ,'C', 2 ,'C+', 2.3 ,'C-', 1.7 ,'D', 1 Microsoft SQL Server CASE input_expression WHEN when_expression THEN result_expression [[WHEN when_expression THEN result_expression] [...]] [ELSE else_result_expression] END CREATE VIEW STUDENT_ADMIN.STUDENT_GPA (SSN, GPA) AS SELECT SSN, ROUND(AVG(CASE grade WHEN 'A' THEN 4 WHEN 'A+' THEN 4.3 WHEN 'A-' THEN 3.7 WHEN 'B' THEN 3 WHEN 'B+' THEN 3.3 WHEN 'B-' THEN 2.7 WHEN 'C' THEN 2 WHEN 'C+' THEN 2.3 WHEN 'C-' THEN 1.7 WHEN 'D' THEN 1 ,'D+', 1.3 ,'D-', 0.7 ,0)),2) FROM STUDENT_ADMIN.GRADE GROUP BY SSN WHEN 'D+' THEN 1.3 WHEN 'D-' THEN 0.7 ELSE 0 END),2) FROM STUDENT_ADMIN.GRADE GROUP BY SSN CASE 表达式可以支持使用 SELECT 语句进行布尔测试,这是 DECODE 命令所不允许的。有关 CASE 表达式的详细信息,请参见 SQL Server Books Online。
将值转换为不同的数据类型
Microsoft SQL Server CONVERT 和 CAST 函数均是多用途的转换函数。它们提供了相似的功能,把一种数据类型的表达式转换为另一种数据类型,并支持多种特殊的数据格式:
? ?
CAST(expression AS data_type)
CONVERT (data type[(length)], expression [, style])
CAST 是一个 SQL-92 标准函数。这些函数执行与 Oracle TO_CHAR、TO_NUMBER、TO_DATE、HEXTORAW 和 RAWTOHEX 函数相同的操作。
数据类型是指该表达式要转换成为的任何系统数据类型。不能使用用户定义的数据类型。length 参数是可选的,它与 char、varchar、binary 和 varbinary 数据类型一起使用。可允许的最大长度是 8000。
转换 Oracle 字符到数字 TO_NUMBER('10') 数字到字符 TO_CHAR(10) Microsoft SQL Server CONVERT(numeric, '10') CONVERT(char, 10) CONVERT(datetime, TO_DATE('04-JUL-97') '04-JUL-97') TO_DATE('04-JUL-1997', CONVERT(datetime, 字符到日期 'dd-mon-yyyy') '04-JUL-1997') TO_DATE('July 4, 1997', CONVERT(datetime, 'July 4, 'Month dd, yyyy') 1997') TO_CHAR(sysdate) CONVERT(char, GETDATE()) TO_CHAR(sysdate, 'dd mon CONVERT(char, GETDATE(), 日期到字符 yyyy') 106) TO_CHAR(sysdate, CONVERT(char, GETDATE(), 'mm/dd/yyyy') 101) 十六进制到HEXTORAW('1F') CONVERT(binary, '1F') 二进制 二进制到十RAWTOHEX CONVERT(char, 六进制 (binary_column) binary_column) 注意,字符串是如何转换成日期的。在 Oracle 中,默认的日期格式模型为“DD-MON-YY”。如果使用任何其它格式,必须提供相应的日期格式模型。CONVERT 函数自动转换标准日期格式,而无须格式模型。
当把日期转换成字符串时,CONVERT 函数默认输出为“dd mon yyyy hh:mm:ss:mmm(24h)”。一种数字类型的编码用于设定到其它日期格式模型输出的格式。有关 CONVERT 函数的详细信息,请参见 SQL Server Books Online。
下表给出了 Microsoft SQL Server 日期的默认输出。
不带世纪 - 1 2 3 4 5 6 7 8 - 10 11 12 - 14 带有世纪 标准 0 或 100 (*) 默认 101 102 103 104 105 106 107 108 美国 ANSI 英国/法国 德国 意大利 - - - 9 或 109 (*) 默认毫秒 110 111 112 美国 日本 ISO 13 或 113 (*) 欧洲默认 114 - 输出 mon dd yyyy hh:miAM(或 PM) mm/dd/yy yy.mm.dd dd/mm/yy dd.mm.yy dd-mm-yy dd mon yy mon dd, yy hh:mm:ss mon dd yyyy hh:mi:ss:mmm(AM 或 PM) mm-dd-yy yy/mm/dd yymmdd dd mon yyyy hh:mm:ss:mmm(24h) hh:mi:ss:mmm(24h) 用户定义的函数
Oracle PL/SQL 函数可用于 Oracle SQL 语句中。在 Microsoft SQL Server 中,这一功能通常以其它方式实现。
在下面的示例中,Oracle 用户定义的函数 GET_SUM_MAJOR 用于获取按专业 (major) 交纳的学费总和。在 SQL Server 中,可通过把查询作为表使用,以替代这一函 …… 此处隐藏:3041字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




