【发布时间】:2019-12-01 07:41:29
【问题描述】:
我需要在按列字段升序排列的结果集的最后放置一条记录。
喜欢:
SELECT "#TOTAL"...
这是用户定义的列值。
这是我想要做的:
SELECT cnt.name as Client, NULL, NULL, NULL, ', @COL_SUM, '
FROM
task as tsk
LEFT JOIN client cnt
ON tsk.client_id = cnt.id
GROUP BY tsk.client_id
UNION ALL
SELECT "#TOTAL#",NULL,NULL,NULL, ', @COL_SUM, '
FROM task as tsk
ORDER BY Client ASC
这将返回结果集为:
Client | ... | Admin | Intern | ..
---------------------------------------
#TOTAL# | ... | 4 | 2 | .. <-- this row here is grand total
A | ... | 1 | | ..
B | ... | 1 | 1 | ..
C | ... | 2 | 1 | ..
我希望#TOTAL# 行最后出现。
除了z之外,哪个字符最后按字母顺序出现?
【问题讨论】:
-
这还是太含糊不清了。您的数据是什么样的?您希望您的结果是什么样的?举个具体的例子——几乎可以肯定有比根据排序顺序捏造字符更好的方法来实现这一点。
-
如果您想知道可以添加哪些字符以使其最后排序,这个ascii table 应该能够提供帮助。编辑:如果该链接停止工作,查找任何 ASCII 表应该可以解决问题。写
|TOTAL|、{TOTAL}或~TOTAL~应该可以解决问题。 -
@AleksG 我已经更新了我的帖子.. 希望能说清楚。
-
@LiHRaM 但请注意非拉丁字符
-
这些数据用在哪里?如果您打算在代码中的某个位置输出它,最好不将总数包含到您的 sql 中。相反,当您输出行数据时,动态添加值 - 然后输出总计。这样它就永远是最后的。