列别名和另一列名称之间的歧义

问题描述 投票:0回答:1

我有一些表具有重叠的列名,并且我想将这些列合并为与别名同名的一列,例如

select a.name || " " || b.name as name from a join b

这很好。但是,如果我要订购它们,例如

order by lower(name) asc

我收到错误ambiguous column name: name,因为sqlite不知道是使用ab还是所选内容的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此...

sqlite ambiguous
1个回答
1
投票

我不认为使用CTE或子查询不是一个好的解决方案。如果您不喜欢它们,唯一的方法是在ORDER BY子句中重复该表达式:

© www.soinside.com 2019 - 2024. All rights reserved.