0

これが私のSQLクエリです

Declare @Type varchar

select  
  if
    (tn.notification_type=1)
  begin
    set @Type= 'WORK FLOW'
    print  'status  '+ CAST(@type AS nvarchar(58))  
  end
from tbl_Notification tn

ここで、テーブルの列の値に基づいて条件を含めるのに問題が発生しています

たとえば、値が1と2と3です。

実行するとエラーが発生します。

メッセージ156、レベル15、状態1、行3
キーワード「if」の近くの構文が正しくありません。
メッセージ156、レベル15、状態1、行9
キーワード「from」の近くの構文が正しくありません。

4

3 に答える 3

3

ifステートメントをcaseステートメントに置き換えます。そのようなクエリではifを使用できません。

于 2012-05-07T14:31:08.827 に答える
2

正確なナンフィビアンの答えを詳しく説明するには、次のようにします。

SELECT
      @Type = (CASE tn.Notification_Type 
                   WHEN 1 THEN 'WORK FLOW' 
                   ELSE 'SOMETHING ELSE' 
                END)
FROM tbl_Notification tn

また、そのようなSQLクエリで印刷を行うことはできません。後で、または何らかのループ状況で行う必要があります。

于 2012-05-07T14:36:26.880 に答える
0
Declare @Type varchar 

if((select tn.notification_type from tbl_Notification tn) = 1) 
begin
   set @Type= 'WORK FLOW' 
   print 'status '+ CAST(@type AS nvarchar(58))
end 
于 2012-05-07T14:33:56.237 に答える