【发布时间】:2015-05-16 03:16:32
【问题描述】:
我有一个查询(这里更短):
SELECT
a,b,c
,SUM(something) as s
FROM table
GROUP BY 1, 2, 3
假设我在 SUM 之前有 23 个列
有没有一种速记方式可以省去我将1,2,3 全部写成23 的麻烦?
【问题讨论】:
-
不——事实上许多 SQL 系统甚至不允许你在 GROUP BY 中使用列号。
-
是的。虽然,在 teradata 列序号上仍然有效。无论如何,必须编写 23 个别名,这比编写列序号序列(我可以很容易地用脚本生成)更加耗时
-
我的意思是,输入 1-23 似乎比输入别名好很多,所以我不认为这是一个巨大的麻烦 :)
-
我可以输入
1-23吗?在评论中表达你的观点是 SQL 速记还是你自己? -
通常最简单的方法是从 SELECT 子句中复制字段,编辑掉任何字段别名,并根据需要更改顺序。如果您更改字段顺序,这具有额外的优势,即不会完全使您的查询变得无聊。我只在 ORDER BY 子句中使用序数,因为我被这个咬了。