2017-04-21 9 views
0

が、私はこの記事が見つかりました:これは正常に動作しますMySQLは:IFで別名を使用/ IFNULL

SELECT 10 AS my_num, 
     (SELECT my_num) * 5 AS another_number 
FROM table 

Using an Alias in SQL Calculations あなたが使用して計算にエイリアスを使用することができます示唆

(select alias) 

よう

。しかし今、私はifでエイリアスを使用したいと思います。だから私はそれが同じように動作するかもしれないと思った。だから私が試した:私

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near '(SELECT my_num)) AS another_number 

を言って、まったく動作しない

SELECT 10 AS my_num, 
     IFNULL(otherfield, (SELECT my_num)) AS another_number 
FROM table 

は、MySQLでこの作品を作るための方法はありますか?

+0

作品でなければなりません。どのバージョンのMySQLを使用していますか? –

+0

MySql Version 5.7.13 – Werner

答えて

0

いいえ、外部クエリでアクセスしない限り、以下のように式全体を直接使用します。あなたのケースでは

IFNULL(otherfield, 10) AS another_number 

それは私のため

SELECT 10 AS my_num, 
     IFNULL(otherfield, 10) AS another_number 
FROM table 
+0

問題は、my_numは多くのIF自体によりますが、もちろん複雑な計算です。エイリアスを再使用するだけであれば、選択を維持する方がはるかに簡単です。 – Werner

関連する問題