繁体   English   中英

联合子句中的列名无效

[英]Invalid Column Name in union clause

我正在尝试使用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

我建议使用子查询。 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表达式更易于维护。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM