Sql 如何从多个列中检索不同的值
我有一个平面文本文件数据,我将其导入到SQL Server表中 它根据数据文件创建具有指定名称和多列的表 现在我需要一个查询,它将返回数据及其计数。e、 g 数据文件:Sql 如何从多个列中检索不同的值,sql,sql-server-2005,Sql,Sql Server 2005,我有一个平面文本文件数据,我将其导入到SQL Server表中 它根据数据文件创建具有指定名称和多列的表 现在我需要一个查询,它将返回数据及其计数。e、 g 数据文件: BREAD,MILK BREAD,DIAPER,BEER,EGGS MILK,DIAPER,BEER,COKE BREAD,MILK,DIAPER,BEER BREAD,MILK,DIAPER,COKE BREAD,ICE,MANGO JUICE,BURGER 结果应该是 BREAD | 5 MILK | 4 DIAPER
BREAD,MILK
BREAD,DIAPER,BEER,EGGS
MILK,DIAPER,BEER,COKE
BREAD,MILK,DIAPER,BEER
BREAD,MILK,DIAPER,COKE
BREAD,ICE,MANGO
JUICE,BURGER
结果应该是
BREAD | 5
MILK | 4
DIAPER| 4
等等。这是基于不完整信息的猜测:
select Item, count(*)
from Items
group by Item
在一个猜测的要求,因为将需要看到你的计划,但,也许像这样的东西
SELECT
ItemValue,
COUNT(*)
FROM
(
SELECT
Column1 ItemValue
FROM
DataTable
UNION ALL
SELECT
Column2 ItemValue
FROM
DataTable
UNION ALL
SELECT
Column3 ItemValue
FROM
DataTable
UNION ALL
SELECT
Column4 ItemValue
FROM
DataTable
) UnionDataTable
您的表的架构是什么?您是否有效地创建了一行n列?这就是非规范化数据库的问题,一切都变得更加困难。@Otavio:我们不知道数据库是否非规范化。在导入过程中,数据可以通过多种方式进行转换。为什么啤酒、鸡蛋等不显示在输出中?您认为我可以使用游标或类似工具来实现这一点,因为我不知道不同数据文件的列数是多少?UnionDataTable是上一个SELECT的别名。