在SQL Server 2008中显示类似结果

时间:2018-09-05 12:15:07

标签: sql sql-server

我有此结果,但我想在sql server 2008中将其显示在下面

Code    Account Debit_1 Debit_2 Debit_3
1       1/25    286     12750   30000
1       1/25    286     12750   30000
1       1/25    286     12750   30000

我如何在下面显示此内容

Code    Account Debit_1  
1       1/25    286  
1       1/25    12750    
1       1/25    30000  

3 个答案:

答案 0 :(得分:1)

使用UNION ALL

SELECT Code,Account,Debit_1
FROM Table1
UNION ALL
SELECT Code,Account,Debit_2
FROM Table1
UNION ALL
SELECT Code,Account,Debit_3
FROM Table1

答案 1 :(得分:0)

我会使用cross applyvalues取消pivit:

select code, account, debit
from t cross apply
     (values (debit_1), (debit_2), (debit_3)
     ) v(debit);

答案 2 :(得分:0)

没有明显的UNION ALL将给出多行,

从display_tab中选择DISTINCT CODE,ACCOUNT,debit_1 全联盟 从display_tab中选择DISTINCT CODE,ACCOUNT,借方_2 全联盟 从display_tab中选择DISTINCT CODE,ACCOUNT,debit_3

UNION自动将不同的行赋予

从display_tab中选择代码,帐户,借方_1 联盟 从display_tab中选择CODE,ACCOUNT,debit_2 联盟 从display_tab中选择CODE,ACCOUNT,debit_3