所以我有这个"表"这是查询的结果
SELECT Valoare
FROM GEConfig
WHERE Cimp IN('Societate','Adresa','Banca','CapitalSocial','Cont','CUI','NrRegCom','ModulReceptiiExtCotaTVA')
GeConfig是一个用于配置每个客户端的应用程序的表,因此上述查询产生的数据对于eaech客户端来说会有所不同。
Valoare
========================
1 aaa
2 bbb
3 ccc
4 ddd
5 eee
6 fff
7 ggg
8 hhh
我想调整此表,使其看起来像
col1 col2 col3 col4 col5 col6 col7 col8
aaa bbb ccc ddd eee fff ggg hhh
我没有任何聚合,我只有一个包含8行的列,我想用1列8列。
为什么我要这个?我必须使用Rave Report。 我试过这样的事情
select Valoare
, [1]
, [2]
, [3]
from
(
select Valoare from GEConfig
) x
pivot
(
max(Valoare)
for Valoare in([1], [2], [3])
)p
但很明显这是非常错误的,因为我不知道如何使用PIVOT。
答案 0 :(得分:2)
更通用的方法是添加行号并将其用作锚
WITH _ID AS (
SELECT Valoare
, _ID = Row_Number() OVER (ORDER BY Valoare)
FROM GEConfig
)
SELECT [1] = MAX(CASE WHEN _ID = 1 THEN Valoare ELSE NULL END)
, [2] = MAX(CASE WHEN _ID = 2 THEN Valoare ELSE NULL END)
, [3] = MAX(CASE WHEN _ID = 3 THEN Valoare ELSE NULL END)
, [4] = MAX(CASE WHEN _ID = 4 THEN Valoare ELSE NULL END)
, [5] = MAX(CASE WHEN _ID = 5 THEN Valoare ELSE NULL END)
, [6] = MAX(CASE WHEN _ID = 6 THEN Valoare ELSE NULL END)
, [7] = MAX(CASE WHEN _ID = 7 THEN Valoare ELSE NULL END)
, [8] = MAX(CASE WHEN _ID = 8 THEN Valoare ELSE NULL END)
FROM _ID
静态案例
您可以使用MarkD的答案中的真实PIVOT
,或者您可以使用假的
SELECT [1] = MAX(CASE WHEN Valoare = 'aaa' THEN 'aaa' ELSE NULL END)
, [2] = MAX(CASE WHEN Valoare = 'bbb' THEN 'bbb' ELSE NULL END)
, [3] = MAX(CASE WHEN Valoare = 'ccc' THEN 'ccc' ELSE NULL END)
, [4] = MAX(CASE WHEN Valoare = 'ccc' THEN 'ccc' ELSE NULL END)
, [5] = MAX(CASE WHEN Valoare = 'ddd' THEN 'ddd' ELSE NULL END)
, [6] = MAX(CASE WHEN Valoare = 'eee' THEN 'eee' ELSE NULL END)
, [7] = MAX(CASE WHEN Valoare = 'fff' THEN 'fff' ELSE NULL END)
, [8] = MAX(CASE WHEN Valoare = 'ggg' THEN 'ggg' ELSE NULL END)
FROM GEConfig
答案 1 :(得分:0)
尝试一下:
SELECT * from
(SELECT cast([name] AS nvarchar(MAX)) [name], row_number() over(
ORDER BY name) AS id
FROM TEMP)a pivot ( max([name])
FOR id IN ([1], [2], [3], [4], [5]) )pvt
答案 2 :(得分:-1)
您可以使用COALESCE
:
declare @val varchar(max)
select @val = coalesce(@val, '') + ' ' + Valoare from GEConfig
select @val