次のCASE文を改善して差異を1回だけ計算しようとしています。私は負の数を避けるためにそれを行います:CASE WHEN SQL文の簡略化
SELECT (CASE WHEN ((SELECT 100 - (SELECT COUNT(CustomerId) FROM Customers)) > 0)
THEN (SELECT 100 - (SELECT COUNT(CustomerId) FROM Customers))
ELSE (0)
END)
これは愚かに見えるだけでなく、スレッドセーフでもありません。私は以下を試しましたが、エラーメッセージ "無効な列名 'diff'が表示されます。"
SELECT (CASE WHEN ((SELECT 100 - (SELECT COUNT(CustomerId) FROM Customers) as diff) > 0)
THEN (diff)
ELSE (0)
END)
これをどのように簡略化できますか?すでにこのジョブを実行する組み込みSQL関数はありますか?
編集:申し訳ありませんが、selectステートメントはビュー宣言の中にあるので、変数を宣言できません。
私はあなたのロジックを右に従っている場合
ありがとう、それはありました!私はそれをさらに改善しました。SELECT COALESCE((SELECT 100 - COUNT(CustomerID)をdiff FROM diff <100)、0) ' – kateroh