在把Oracle查詢轉換為SQL Server的時候要特別當心一些不容易注意到的問題
ANSI SQL
對這些擴展進行轉化以用在SQL Server環境下
列的選擇
用PLSQL執行數據查詢的時候
Oracle連同數據字典一同創建
從DUAL表選擇數據常被用來通過SELECT語句計算常數表達式
Oracle下的DUAL查詢如下所示
SELECT
而對等的SQL Server查詢則是下面這個樣子
SELECT
連接
Oracle用|| 符號作為連接符
Oracle查詢如下所示
Select
From tableName
對應的SQL Server查詢如下所示
Select
數字取捨
Oracle數據庫內有一個TRUNC函數
在SQL Server下可以用Round或者Floor
以下是Oracle查詢
SELECT TRUNC(
下面是同類查詢的SQL Server版本
SELECT ROUND(
ROUND(
SELECT FLOOR(ROUND(
FLOOR(ROUND(
在把Oracle查詢轉換為SQL Server的時候要特別當心一些不容易注意到的問題
ANSI SQL
對這些擴展進行轉化以用在SQL Server環境下
列的選擇
用PLSQL執行數據查詢的時候
Oracle連同數據字典一同創建
從DUAL表選擇數據常被用來通過SELECT語句計算常數表達式
Oracle下的DUAL查詢如下所示
SELECT
而對等的SQL Server查詢則是下面這個樣子
SELECT
連接
Oracle用|| 符號作為連接符
Oracle查詢如下所示
Select
From tableName
對應的SQL Server查詢如下所示
Select
數字取捨
Oracle數據庫內有一個TRUNC函數
在SQL Server下可以用Round或者Floor
以下是Oracle查詢
SELECT TRUNC(
下面是同類查詢的SQL Server版本
SELECT ROUND(
ROUND(
SELECT FLOOR(ROUND(
FLOOR(ROUND(
數字轉換
Oracle的TO_CHAR函數可以把n位NUMBER數據類型轉換為VARCHAR
SQL Server則通過STR函數返回數字轉換之後的字符數據
Oracle查詢如下
SELECT to_char(
SELECT to_char(EXPIRY_DATE
以下是SQL Server版本的查詢
SELECT STR(
SELECT STR(round(
SELECT CAST(REPLACE((CONVERT(varchar(
EXPIRYDATE
LENGTH和LEN
以下是Oracle的查詢
SELECT LENGTH(
以上查詢在SQL Server下是這樣寫的
SELECT LEN(
日期
Oracle取得日期和采用如下方式
SYSDATE
SQL Server則是這樣的
GETDATE()
你可以用各種語法操作日期
以下的代碼對Oracle日期
值中的月份進行了格式調整(返回日期再加上n月)
Select add_months(sysdate
SQL Server則是如下完成同等功能的
Select dateadd(mm
數據的減法也不同
對數據進行減法操作
SELECT sysdate
SQL Server則是這樣做的
SELECT datediff(dd
小結
幸而
From:http://tw.wingwit.com/Article/program/Oracle/201311/18850.html