Sql server 如何在sql中将多列作为值存储在一列中

Sql server 如何在sql中将多列作为值存储在一列中,sql-server,Sql Server,如何从子查询中获取所有列并将其存储在一列中?我需要它是在1列作为一个系列在图表中使用 这是我的密码: Select A,B,C,D,E,F as newcol from (SELECT COUNT(NULLIF(A,'')) as A, COUNT(NULLIF(B,'')) as B, COUNT(NULLIF(C,'')) as C, COUNT(NULLIF(D,'')) as D, COUNT(NULLIF(E,'')) as E, COUNT(NULLIF(F,'')) as F

如何从子查询中获取所有列并将其存储在一列中?我需要它是在1列作为一个系列在图表中使用

这是我的密码:

Select A,B,C,D,E,F as newcol from 
(SELECT 
COUNT(NULLIF(A,'')) as A,
COUNT(NULLIF(B,'')) as B,
COUNT(NULLIF(C,'')) as C,
COUNT(NULLIF(D,'')) as D,
COUNT(NULLIF(E,'')) as E,
COUNT(NULLIF(F,'')) as F
FROM MYTABLE)
as T

因为子查询结果的形式为1行。我需要将A、B、C、D、E、F列值用作图表中的系列值。我想以图形的形式显示每列的计数(ABCDEF)。如果您只是想要数据透视,而
MYTABLE
实际上只有一行,最简单的方法似乎是:

SELECT V.YourColum
FROM MYTABLE T
     CROSS APPLY (VALUES(T.A),
                        (T.B),
                        (T.C),
                        (T.D),
                        (T.E),
                        (T.F)) V(YourColumn);
假设所有列具有相同的数据类型。

由此:

Select A,B,C,D,E,F as newcol from
我想您希望将所有列连接到一列,如下所示:

Select concat(A, ',', B, ',', C, ',', D, ',', E, ',', F) as newcol from
如果只需要一列,其中每个值为一行,则select语句中已有这些值,并且可以与UNION ALL组合:

SELECT COUNT(NULLIF(A,'')) as newcol FROM MYTABLE
UNION ALL
SELECT COUNT(NULLIF(B,'')) FROM MYTABLE
UNION ALL
SELECT COUNT(NULLIF(C,'')) FROM MYTABLE
UNION ALL
SELECT COUNT(NULLIF(D,'')) FROM MYTABLE
UNION ALL
SELECT COUNT(NULLIF(E,'')) FROM MYTABLE
UNION ALL
SELECT COUNT(NULLIF(F,'')) FROM MYTABLE

你是在问如何在这里集中你的数据吗?所以,不是1行6列,而是1列6行?或者真的@是的。我发布的代码给出了如下结果:a | B | C | D | E | F 1 | 2 | 2 | 3 | 2 | 1,因此它是一行多列。我需要它是一列多行,因为我将在柱状图中使用它,其中x值是列名,y值是计数。你看过这里的答案吗@meandyou?评论不是提供样品和预期数据的地方;这应该是你的问题。嗨!union all是最接近的,但我希望列名是一列多行的列名。我不知道
我希望列名是一列多行的列名。您可以发布示例数据和预期结果吗?我发布的代码给出了如下结果:因此它是一行多列。我需要它是一列多行,因为我将在条形图中使用它,其中x值是列名,y值是计数。可能吗?对不起,我还是个新手。工会就是这么做的。1列,每行1个值我知道了!我刚刚在你给出的工会代码中增加了一列。非常感谢你!