2011-12-15 6 views
0

私はToad for MySQLを使用しています。返されたレコードがどのカテゴリに合格したか失敗したかどうかを確認するクエリを作成します。MySqlのPassまたはFail Caseステートメント

IDのuat_resourceトレーニングload_performanceが 1846ジョン・洪水なしなしなしなし 1849マット・バリN/Aマット・バリN/AN/A

をpay_associatedリスク:

私の現在のクエリの結果は、これがあります

何かがNullの場合はFailとみなされ、Risksがn/aまたはnoneの場合は、常にリスクがあるため失敗するように設定します。

SELECT cr.ID, 
    cr.risks, 
    cr.training, 
    cr.load_performance, 
    cr.pay_associated 
FROM requests.requests cr 
WHERE cr.id IN (SELECT di.change_request_id 
        FROM dcs_item di 
        WHERE di.current_level = 3) 
    AND cr.production_dt IN ('2012/01/10','2011/01/11') 
ORDER BY ID; 

私はこのような何かをしようとしていた....

SELECT cr.ID, 
    (case when lower(cr.uat_resource) in ('','n/a','none') then 
    'FAIL' else 'PASS') as Test, 
    cr.risks, 
    cr.training, 
    cr.load_performance, 
    cr.pay_associated 
FROM requests.requests cr 
WHERE cr.id IN (SELECT di.change_request_id 
        FROM dcs_item di 
        WHERE di.current_level = 3) 
    AND cr.production_dt IN ('2012/01/10','2011/01/11') 
ORDER BY ID; 
+0

をし、あなたの結果はどうでしたか?それは間違っていましたか? – Robert

答えて

0

はあなたのcase文に "終わり" が必要です。

SELECT cr.ID, 
    (case when lower(cr.uat_resource) in ('','n/a','none') then 
    'FAIL' else 'PASS' END) as Test, 
    cr.risks, 
    cr.training, 
    cr.load_performance, 
    cr.pay_associated 
FROM requests.requests cr 
WHERE cr.id IN (SELECT di.change_request_id 
        FROM dcs_item di 
        WHERE di.current_level = 3) 
    AND cr.production_dt IN ('2012/01/10','2011/01/11') 
ORDER BY ID; 
+0

ありがとうございます。私はちょうどその脳のおならを持っていて、それを実現しましたそれはちょうどlooong週だったと推測する。 :) – user1100571

関連する問題