2017-04-05 4 views
0

以下のOracle固有クエリーをMS SQL Server固有の構文に変換しようとしています。しかし、私は2つのテーブルの結合を行うことができません 'LEFT'キーワードの近くに誤った構文が表示されます。以下のクエリのMS SQL Sever変換形式を指定してください。前もって感謝します。MS SQL Serverのoracleクエリーに相当する

SELECT UNIQUE 
     '' log_id, 
     21043 campaign_Id , 
     tbk_campaign.online_campaign_id + ' ' + tbk_campaign.promotion_name email_subject, 
     '' email_user_id_to_list 
FROM DUAL 
LEFT OUTER JOIN tbk_campaign c ON 1=1 AND tbk_campaign.campaign_id =21043 
+0

UNIQUEを交換し、私たちにクエリ全体を掲示するために申し訳ありませんが、あなたの試み – HoneyBadger

+0

を示しました。質問が編集されました。 – prathyaksh

答えて

1

SQL Serverは、すべてのSELECTFROM句を持っている "しなければならない" ために存在する架空のテーブルをDUALを実装していません。

あなたが好きな単純なものでDUALを置き換えることができます。

SELECT DISTINCT '' log_id, 21043 campaign_Id , tbk_campaign.online_campaign_id + ' ' + tbk_campaign.promotion_name 
    email_subject, '' email_user_id_to_list 
FROM (SELECT 1 as a) t 
    LEFT OUTER JOIN tbk_campaign c ON tbk_campaign.campaign_id =21043 


代わりのDUALを実装する(またそのSandip mentions UNIQUE/DISTINCT変更を組み込む)、SQL Serverが代わりに緩和しました私の答えのサブクエリに示されているようにFROM句なしでSELECTを許可します。しかし、私は標準がFROM句とDUALの使用を義務づけたと信じています。

+0

ありがとう@Damien_The_Unbeliever。 – prathyaksh

0

以下のようにクエリを更新しましたが、コンパイルエラーは発生しません。私たちはあなたのために仕事をするつもりはないDISTINCT

SELECT DISTINCT 
    '' log_id, 
    21043 campaign_Id , 
    tbk_campaign.online_campaign_id + ' ' + tbk_campaign.promotion_name email_subject, 
    '' email_user_id_to_list 
FROM DUAL 
LEFT OUTER JOIN tbk_campaign c ON 1=1 AND tbk_campaign.campaign_id =21043 
+0

ありがとう@Sandip Patel。 – prathyaksh

+0

'DUAL'はSQLサーバーに存在しません(あなたが自分で作成しない限り) – HoneyBadger

+0

@Honey ..:私はDUALがテーブル名だと思います。 –

関連する問題