-1

case ステートメント内にビューを作成しようとしていますが、SQL Server では許可されていません。ここに例があります:

SELECT value,
CASE value
  WHEN 'value1' THEN (Create View as (Select ... From ... Where...))
  WHEN 'value1' THEN (Create View as (Select ... From ... Where...))
END
FROM table
WHERE table.parameter = 'some_parameter'

なぜ機能しないのか誰か知っていますか?前もって感謝します。

4

2 に答える 2

0

MS SQL Server の SQL フレーバーである t-sql では、caseステートメントは特定の条件に基づいて 1 つの値を返すことを意図しています。

t-sql に分岐ロジックを導入したい場合は、 and を使用してそれを行うことができifますelse

あなたの例に基づいた例を次に示します。

declare @Value varchar(128);
select top 1 @Value = value from table where table.parameter = 'some_parameter';

if @Value = 'value1'
begin
    Create View as (Select ... From ... Where...);
end
else if @Value = 'value2'
begin
    Create View as (Select ... From ... Where...);
end

注:ブロック内にステートメントが 1 つしかない場合、 beginandブロックはオプションです。end

于 2015-11-09T14:25:53.853 に答える