我正在尝试使用union子句向我的列添加固定值'ALLE'
,但是我收到错误:
无效的列名BoltPattern
在我的order by
条款
我该怎么做?
SELECT 'ALLE'
UNION
SELECT BoltPattern
FROM [OminiTire].[Data].[WheelData]
WHERE BoltPattern IS NOT NULL
GROUP BY BoltPattern
ORDER BY
CASE
WHEN BoltPattern = 'ALLE'
THEN 1
ELSE 2
END, BoltPattern
答案 0 :(得分:2)
我建议使用子查询。 。 。和union all
:
SELECT BoltPattern
FROM ((SELECT 'ALLE' as BoltPattern, 1 as ord)
UNION ALL
(SELECT DISTINCT BoltPattern, 2 as ord
FROM [OminiTire].[Data].[WheelData]
WHERE BoltPattern is not null
)
) x
ORDER BY ord, BoltPattern;
注意:
UNION
会产生开销以删除重复项。 UNION ALL
没有。SELECT DISTINCT
比使用GROUP BY
更简洁。CASE
表达式更容易维护(在我看来)。