【发布时间】:2010-10-22 12:25:44
【问题描述】:
我需要分组,即使通过转换为文本值来区分列的值并且需要将该文本值包含在选择列表中
这怎么可能?
SELECT col1,col2
FROM
(
SELECT col1,col2 FROM table1
UNION ALL
SELECT col1,col2 FROM table2
UNION ALL
SELECT col1,col2 FROM table3
)tbl
GROUP BY tbl.col1
,tbl.col2
这里 col2 可能是也可能不是文本值或 int,如果是文本值,我需要将所有其他 col2 int 转换为文本并按
看这个例子:
Table 1
-------
A B 3 C
A B var C
Table 2
-------
UNION ALL
B B 3 C
B B var C
Table 3
-------
UNION ALL
B B 3 C
B B 3 C
Result of each table should be
-------
Table 1
-------
A B var C (since there is a var in the any of the row in that column in that table)
Table 2
-------
B B var C (since there is a var in the any of the row in that column in that table)
Table 3
-------
B B 3 C (here it remains 3 since there is not value call var in any of the row in that column)
Result
------
A B var C
B B var C (since there is a var in the any of the row in that column in that table)
【问题讨论】:
-
一些样本数据和一些样本结果怎么样,从你尝试的查询中看不出你想要什么。
-
您在使用 MS-SQl-Server 吗?哪个版本?
-
col2 = "3 C" 是什么意思?这必须是 col2 的 varchar(10) 数据类型,为什么一列中有两个值?您知道,您有一个数据库,并且最小规范化将这些值放在单独的列中:col2 = 3, col3 = "C"
标签: sql sql-server sql-server-2005 tsql