【发布时间】:2014-11-28 17:32:36
【问题描述】:
我正在编写一个日志分析工具,它提供了一个动态查询的表列表。然后,对于每个表,我想允许用户运行一个选择查询,他们根据某些可选列进行分组。挑战?确定(动态)哪些列是可分组的类型。任何帮助,将不胜感激。这可能是错误分类的,但 SO 是我所知道的最受欢迎的编码网站之一,因此将这些信息提供给未来的观众是有意义的。
任何帮助将不胜感激。谢谢。
问题:您如何(动态地)判断 MsSQL 表中的哪些列是可分组的?
示例错误:操作数数据类型文本对于最大运算符无效。
【问题讨论】:
-
任何列都是可分组的,关于如何分组列有一些规则,按列分组时google查看规则列表。
-
@M.Ali 这并不完全正确。例如,
TEXT、NTEXT、IMAGE数据类型的列不可分组 -
我遇到了 Lamak 提到的确切问题。谁曾经-1'd this...如果您撤消否决票,我将不胜感激。
-
根据您的示例错误,您实际上正在寻找的是哪些列类型可以使用哪些聚合函数,对吗?
-
正确。看起来只要一列是可索引的(如 Microsoft SQL Server Management Studio 中所示),它就可用于聚合函数。所以现在的诀窍是找出一个查询来显示哪些列是可索引的。
标签: sql-server group-by database-schema dynamic-columns aggregates