我有一些表具有重叠的列名,并且我想将这些列合并为与别名同名的一列,例如
select a.name || " " || b.name as name from a join b
这很好。但是,如果我要订购它们,例如
order by lower(name) asc
我收到错误ambiguous column name: name
,因为sqlite不知道是使用a
,b
还是所选内容的name
列。我的问题是,是否有可能专门选择选择的name
列(而不给它其他别名)?也许有一些不错的<keyword>
,这样<keyword>.name
会导致选择的name
列。还是真的没有比[]更好的解决方案了?
with tmp as (select tmp_a.name || " " || tmp_b.name as name from tmp_a join tmp_b)
select name from tmp order by lower(name) asc
我有一些表具有重叠的列名,我想将这些列合并为与别名同名的一列,例如选择一个名称|| “” || b.name作为联接的名称b此...
我不认为使用CTE或子查询不是一个好的解决方案。如果您不喜欢它们,唯一的方法是在ORDER BY
子句中重复该表达式: