我有一个连接两个表的查询。我希望能够创建一个别名,当原始字段为空时,允许该值默认为不同的字段。这里是一个例子:MySQL:如何从两个不同的字段创建别名?
select
Table1.Name,
Table2.Name,
(case when Table1.Name then Table2.Name else Table1.Name end) AS 'RealName'
from Table3
left join Table1 on Table1.ID = Table3.Table1_ID
left join Table2 on Table2.ID = Table3.Table2_ID
order by `RealName` asc
当我尝试这样做时,出现“字段列表中未知列”错误。
更新:原来我的未知列错误是由于其他原因。 MySQL coalesce function为此很好。通过
(case when Table1.Name IS NULL then Table2.Name else Table1.Name end) AS 'RealName'
编辑
同时也可在您的订单,将其更改为:
@ain:当然可以。 [http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_coalesce](http://dev.mysql.com/doc/refman/5.0/en/comparison-operators。 HTML#function_coalesce) –