3

テーブル内の別のフィールドに基づいてテーブル内のフィールドを設定したいと考えています。

これは私が欲しい機能です:

set result = Win if ((select status from tableY) like '%Won%')
set result = Loss if ((select status from tableY) like '%lost%')

これはコンパイルされません... 正しい機能を得るにはどうすればよいですか?

4

2 に答える 2

5
set result = case when (select status from tableY) like '%Won%'
                  then 'Win'
                  when (select status from tableY) like '%lost%'
                  then 'Lost'
               -- If neither win or lose don't change a thing
                  else result
              end
于 2012-08-08T18:09:05.873 に答える
1

では、tableY の列を更新しようとしていますか?

UPDATE tableY SET Result = CASE WHEN status LIKE '%Won%' then 'Win' 
                                ELSE 'Loss'
                           END
WHERE (status LIKE '%Won%'  AND COALESCE(Result,'') != 'Win')
   OR (status LIKE '%Lost%' AND COALESCE(Result,'') != 'Loss')
于 2012-08-08T19:19:43.157 に答える