2016-07-27 7 views
0

私は、さまざまなデータの束を返すクエリを持っていますが、特定の条件ですべての値を置き換える必要があります。すべての値を置換するSQLサブクエリ

私が下に書いたものは、私が望む結果を与えてくれるものですが、実際にはありません。これは、代わりに他のものを交換する新しい列を作成します。

SELECT 
    CASE 
     WHEN T4.[U_DestType] = '6' 
      THEN (SELECT 
       'Company Limited' AS [ShipToCode] 
      ) 
    END AS [ShipToCode], 
    T2.[ShipToCode], 
    T6.[StreetS], 
    T6.[StreetNoS], 
    T6.[CityS], 
    T6.[ZipCodeS], 
    T6.[CountryS], 
    T5.[LicTradNum], 
    T2.[CardCode], 
    T4.[Phone1], 
    T4.[E_Mail], 
    T4.[U_DestType], 
    CASE 
     WHEN T4.[Country] = 'GB' 
      THEN 'EN' 
     ELSE T4.[Country] 
    END AS [Country], 
    T4.[U_ShortName] 
FROM[...] 

最終目標は、いくつかのプリセット値の代わりに、上記のようにちょうどShipToCodeですべての列を交換することです。

FROMの後にEXISTサブクエリを置こうとしましたが、どちらもうまくいきませんでした。

これは可能ですか?私はおそらく非常に明白な何かを欠いているでしょう

多くの感謝!

CASE 
    WHEN T4.[U_DestType] = '6' 
     THEN (SELECT 
      'Company Limited' AS [ShipToCode] 
     ) 
    ELSE T2.[ShipToCode] 
END AS [ShipToCode], 

をところで、あなたは、サブセレクトを使用する必要はありませんでした:

答えて

4

次の2つの「列」を組み合わせて、あなたのCASE式でELSEを使用することができます。これは、同じようにうまく動作し、読みやすくなります。

CASE 
    WHEN T4.[U_DestType] = '6' THEN 'Company Limited' 
    ELSE T2.[ShipToCode] 
END AS [ShipToCode], 
+0

ヒント、その副選択の必要はありません、単なる '...その後、「有限会社」....' –

+1

ハ!すでに編集中だった...; ) –

+0

私はダミーです、それはすべて今とても明らかです。再度、感謝します。 – coblenski

関連する問題