如何根据ID列将一条记录显示为多条记录

时间:2019-06-25 12:11:46

标签: sql

可能是非常基本的问题,但我有这样的记录

Value1- Value2- Value3- Value4- Value5- ID1
Value1- Value2- Value3- Value4- Value5- ID2

(值1-5可以为空)

我要根据ID以以下格式显示它:

ID1 - Value1
ID1 - Value2 
ID2 - Value1 
对于所有不为空的值,为

etc。

谢谢!

4 个答案:

答案 0 :(得分:0)

您可以尝试与同一实体进行交叉联接并添加条件以避免数据冗余。

答案 1 :(得分:0)

如果您没有在数据库中提到数据库,那么是否对每个ID的“值”列中的每个ID的值都最少了

$errors = array();

// knowing that it's not always the same array value count, it could be 0 or 5 or even 10

$errors[]= "error 1";

$errors[]="error 2";

$errors[]="error 3";

答案 2 :(得分:0)

您没有指定DBMS,但是如果您正在使用DB2,请尝试使用LATERAL

Select             
  A.ID, A_Column_Value
From               
  YOUR_TABLE A ,     
  LATERAL          
     (VALUES       
        A.COLUMN1,   
        A.COLUMN2,   
        A.COLUMN3) As All_Values (A_Column_Value)  

答案 3 :(得分:0)

应该是:

 select ID,col
 from Table
 Unpivot
 (
   col for details in (column1,column2,column3,column4,column5)
 ) as UnPvt