Select distinct
Case
When ABC = 'C1' then 'C1'
When ABC = 'C1C' then 'C1C'
When ABC = 'C2' then 'C2'
When ABC = 'C3' then 'C3'
When ABC = 'C3C' then 'C3C'
When ABC = 'C3CC' then 'C3CC'
When ABC = 'C4' then 'C4'
When ABC = 'C4C' then 'C4C'
When ABC = 'C4CC' then 'C4CC'
When ABC = 'C6' then 'C6'
When ABC = 'C7' then 'C7'
When ABC = 'C8' then 'C8'
When ABC = 'F' then 'F'
When ABC = 'F2' then 'F2'
When ABC = 'V' then 'V'
When ABC = 'V2' then 'V2'
End as ABC
from LinkedServer.database.dbo.Tblname
通常のデータベースで上記のSQLを実行すると、エラーなしで完全に機能しますが、リンクサーバープレフィックスを使用すると、エラーが発生します。
エラー メッセージ: メッセージ 8180、レベル 16、状態 1、行 1 ステートメントを準備できませんでした。メッセージ 125、レベル 15、状態 4、行 1 Case 式は、レベル 10 までのみネストできます。
一部のケースステートメント(通常は10ケース未満)を削除すると正常に機能します。任意の考えや回避策: 私が知っている回避策の 1 つ: リンク サーバーに SP/ビュー/関数を作成し、多くのケース ステートメントを使用して、作成した SP/ビュー/関数を呼び出します。私はこれを探していません。