2017-04-21 18 views
0

我發現這個職位: Using an Alias in SQL Calculations 這表明您可以通過使用用在計算中的一個別名MySQL的:中如果使用的別名/ IFNULL

(select alias) 

,如:

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

這工作正常。但是現在我想在if中使用別名。所以我認爲它可能以同樣的方式工作。所以,我想:

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

這完全不工作,告訴我

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 

有沒有什麼辦法可以使在MySQL這項工作?

+0

爲我工作。你使用的是什麼版本的MySQL? –

+0

MySql版本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

問題是,根據許多IF本身,my_num當然是一個更復雜的計算。如果可以重新使用別名,則選擇將更容易維護。 – Werner