查询转换oracle,怎样把Oracle查询转换为SQL Server

怎样把Oracle查询转换为SQL Server

在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何对这些扩展进行转化以用在SQL Server环境下。

列的选择

用PLSQL执行数据查询的时候,from子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。

1)DUAL

在Oracle数据库内有一种特殊的表DUAL.DUAL表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X.

从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

Oracle下的DUAL查询如下所示:

SELECT  ‘x’ from dual

而对等的SQL Server查询则是下面这个样子:

SELECT ‘x’

2)连接

Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .

Oracle查询如下所示:

Select ‘Name’ || ‘Last Name’ from tableName

对应的SQL Server查询如下所示:

Select ‘Name’ + ‘Last Name’

3)数字取舍

Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。

在SQL Server下可以用Round或者Floor.

以下是Oracle查询:

SELECT  TRUNC(15.79,1) "Truncate" from DUAL;

下面是同类查询的SQL Server版本:

SELECT ROUND(15.79, 0) rounded ,

ROUND(15.79, 0,1) truncated

SELECT FLOOR(ROUND(15.79, 0)),

FLOOR(ROUND(15.79, 0,1) )

4)数字转换

Oracle的TO_CHAR函数可以把n位NUMBER数据类型转换为VARCHAR2 数据类型,同时采用可选的数字格式。

SQL Server则通过STR函数返回数字转换之后的字符数据。不过,该函数不具�

相关文档:

Sql代码

--采用SQL语句实现sql2005和Excel 数据之间的数据导入导出,在网上找来一--下,实现方法是这样的:

--Excel---->SQL2005  导入:

select * into useinfo from O ......

熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换� ......

http://www.umgr.com/blog/PostView.aspx?bpId=36294

1. 执行sql语句

int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callbacksql 语法

, void *,  char **errmsg );

这就是执行一条 sql 语句的函数。

第1个参数不再说了,是前面open函数得到的指针。说了是关键数据结构。

第2个参数const char ......

数学函数

在oracle 中distinct关键字可以显示相同记录只显示一条

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 ......

如果你经常遇到下面的问题,你就要考虑使用SQL Server的模板来写规范的SQL语句了:

SQL初学者。

经常忘记常用的DML或是DDL SQL 语句。

在多人开发维护的SQL中,每个人都有自己的SQL习惯,没有一套统一的规范。

在SQL Server Management Studio中,已经给大家提供了很多常用的现成SQL规范模板。

SQL Server Management ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值