[英]Oracle to T-SQL CTE conversion errors
無法將Oracle語法轉換為T-SQL。 嘗試轉換以下語句:
SELECT *
FROM (WITH NEW_USERS AS (SELECT WPP.USER_ID
FROM DSS_ERS_STAGE.ES_W_PARTICIPANT_DIM WPP
MINUS
SELECT PP.USER_ID FROM DSS_ERS_STAGE.ES_PARTICIPANT_DIM PP)
SELECT EWP.USER_ID
,EWP.CANDIDATE_1_0_FLAG
FROM DSS_ERS_STAGE.ES_W_PARTICIPANT_DIM EWP
INNER JOIN NEW_USERS N
ON (EWP.USER_ID = N.USER_ID)
WHERE EWP.CANDIDATE_1_0_FLAG = 1)
轉換嘗試:
SELECT *
FROM (WITH NEW_USERS AS (SELECT WPP.USER_ID
FROM DSS_ERS_STAGE.ES_W_PARTICIPANT_DIM WPP
EXCEPT
SELECT PP.USER_ID FROM DSS_ERS_STAGE.ES_PARTICIPANT_DIM PP)
SELECT EWP.USER_ID
,EWP.CANDIDATE_1_0_FLAG
FROM DSS_ERS_STAGE.ES_W_PARTICIPANT_DIM EWP
INNER JOIN NEW_USERS N
ON (EWP.USER_ID = N.USER_ID)
WHERE EWP.CANDIDATE_1_0_FLAG = 1)
SQL Server返回以下錯誤:
消息156,級別15,狀態1,第2行關鍵字“ WITH”附近的語法錯誤。
消息319,級別15,狀態1,第2行關鍵字“ with”附近的語法錯誤。 如果此語句是公用表表達式,xmlnamespaces子句或更改跟蹤上下文子句,則前一條語句必須以分號終止。
消息102,級別15,狀態1,第11行')'附近的語法不正確。
WITH NEW_USERS AS (SELECT WPP.USER_ID
FROM DSS_ERS_STAGE.ES_W_PARTICIPANT_DIM WPP
EXCEPT -- Oracle has MINUS
SELECT PP.USER_ID
FROM DSS_ERS_STAGE.ES_PARTICIPANT_DIM PP)
SELECT EWP.USER_ID
,EWP.CANDIDATE_1_0_FLAG
FROM DSS_ERS_STAGE.ES_W_PARTICIPANT_DIM EWP
INNER JOIN NEW_USERS N
ON (EWP.USER_ID = N.USER_ID)
WHERE EWP.CANDIDATE_1_0_FLAG = 1;
第二件事:SQL Server使用EXCEPT
關鍵字代替MINUS
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.