怎样把Oracle查询转换为SQL Server

news/2024/7/3 6:24:11 标签: sql server, oracle, 扩展, 语言, 引擎, 数据库
在把 Oracle查询转换为 SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的 语言 引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对

  ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用 程序 几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何

  对这些扩展进行转化以用在SQL Server环境下。

  列的选择

  用PLSQL 执行 数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由

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

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

  Oracle下的DUAL查询如下所示:

  SELECT ‘x’ FROM dual

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

  SELECT ‘x’

  连接

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

  Oracle查询如下所示:

  Select ‘Name’ || ‘Last Name’

  From tableName

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

  Select ‘Name’ + ‘Last Name’

   数字 取舍

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

  在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对

  ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的 应用 程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何

  对这些扩展进行转化以用在SQL Server环境下。

  列的选择

  用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由

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

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

  Oracle下的DUAL查询如下所示:

  SELECT ‘x’ FROM dual

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

  SELECT ‘x’

  连接

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

  Oracle查询如下所示:

  Select ‘Name’ || ‘Last Name’

  From tableName

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

  Select ‘Name’ + ‘Last Name’


http://www.niftyadmin.cn/n/600440.html

相关文章

RANSAC算法理解

RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次…

.NET / Rotor源码研究3 – 调试Rotor托管代码的利器:WinDbg和SOS

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/46860.html" frameborder"0" width"468" scrolling"no" height"60"></iframe>WinDbgSOS简介 …

Pytorch学习系列之九:OpenCV加载onnx模型进行推理

0. 为什么选着OpenCV进行推理 按道理,使用OpenVINO推理套件(引擎)进行优化加速推理,或者其他推理套件进行推理,比如TensorRT等等。OpenVINO是英特尔推出的一款全面的工具套件,用于快速部署应用和解决方案,支持计算机视觉的CNN网络结构超过150余种。 但引入推理套件(引擎…

另一道看上去很吓人的面试题:如何交换a和b两个整数的值,不用额外空间 (Rev. 2)...

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/46860.html" frameborder"0" width"468" scrolling"no" height"60"></iframe>这个题貌似完全…

变分编码器VAE原理

短短三年时间&#xff0c;变分编码器VAE&#xff08;Variational Auto-encoder&#xff09;同GAN一样&#xff0c;成为无监督复杂概率分布学习的最流行的方法。VAE之所以流行&#xff0c;是因为它建立在标准函数逼近单元&#xff0c;即神经网络&#xff0c;此外它可以利用随机梯…

C++ 环形缓冲区(队列)简单实现

1. 说明 在实际工作中&#xff0c;如果数据流量过大&#xff0c;可以先把数据接收到数据缓冲区中&#xff0c;处理之后再取出。我们定义的包协议可以采用定长包&#xff0c;可以采用不定长度的包&#xff0c;环形缓冲区都能处理。 2. 使用场景 2.1 生产消费的场所 在 “生产…

Pytorch学习系列之十:如何确定合适的epoch数、在加载的模型基础上继续训练

1,使用背景 当有以下两种情况时: 1) 不知道训练的epoch选取为何值时。过小,训练不充分,泛化能力差; 过大,训练过度,导致过拟合。所以需要动态观察每个epoch后,模型在验证集(也可以不严谨的说是测试集)上的精度,选取精度最大的epoch作为最终的训练结果。 2)在加…

轮廓(图形)之凹点切分

原博客为:凹点切分,但是原博客算法存在诸多问题,因此这里修改了一下。 在常见的细胞计数,种子计数,总之总会遇到物体重叠的情况,有重叠部分的物体颜色近似,这样会把多个物体计数成一个, 寻找到凹点是解决该分割问题的关键。这里采用如下方法: 1、寻找该图像的最小凸…