計算がTRUEの場合は値を返し、FALSEの場合はFALSEを返すクエリをコミットしたいと思います。
SELECT
IF(VALID,EMPLOYEE_NAME,"NULL") AS NAME,
IF(SALARY/DAYS > 1000, TRUE, FALSE) AS VALID;
クエリが終了するまで、VALID変数はMYSQLに認識されていないようです。
だから私の質問は:そのクエリ
の
有効性を評価するための可能な方法はありますか?
You can also do this with a subquery:
SELECT IF(VALID,EMPLOYEE_NAME,"NULL") AS NAME, VALID
from (select t.*, IF(SALARY/DAYS > 1000, TRUE, FALSE) AS VALID
from t
) t
I'm not a big fan of replicating logic. I much prefer to use subqueries to define variables. This makes it much easier to change the definitions. In general, this doesn't affect performance, because (most) sql engines are smart enough to do the calculations with one read through the data.
いいえ。同じクエリでエイリアスをそのように使用することはできません。
あなたは自分自身を繰り返す必要があります。
SELECT
IF(SALARY/DAYS > 1000,EMPLOYEE_NAME,"NULL") AS NAME,
IF(SALARY/DAYS > 1000, TRUE, FALSE) AS VALID;