ビットフィールドが真であるか偽であるかに基づいて条件付きで何かを選択したいと思います。SQLのcase文でブール式としてビットフィールドを使用できないのはなぜですか?
CASE WHEN isSoon THEN 'Soon' ELSE 'Not so soon' END As HowSoon
これは、次の何ので、私には理にかなって、それはビットフィールドだとして、あるisSoon
ブール式、である必要があり、「WHEN」:これは私が最初に試した構文をしました。しかし、これはうまくいかなかった。私は終わりにしなければならなかったことだった:これは私には思える冗長
CASE WHEN isSoon = 1 THEN 'Soon' ELSE 'Not so soon' END As HowSoon
...それは代わりに、より直感的なif(isSoon)
のプログラミング言語でif(isSoon == True)
を書くようなものだと穀物に反します。なぜSQLはこのように設定されていますか?それはビットフィールドが本当にブール値ではないからですか?
また、使用しているデータベースプロバイダを教えてください。 MySQLはそれに問題がないようです。 –
このバグは私もあまりにも、SQLはそのように設定されていません。同じ方法で、SPにパラメータを渡すときに計算を使用できないようにします( 'exec ListPermissionsByUser @DomainName + '\' + @ UserName'は実行できません) –