如何将单列显示为与其他列值有某种关系的行

时间:2019-05-17 23:07:38

标签: select psql

我想创建一个在显示为列的行中显示一些特定值的请求。

-原始表格:

**ID**      **Name**      **FRUIT**      **Description**      **Place**<br/> 
1      Jhon      Apple      Red      USA<br/> 
1      Jhon      Apple      Red      MEX<br/> 
1      Jhon      Grape      Green      USA<br/> 
1      Jhon      Grape      Green      MEX<br/> 
5      Pala      Pinap      Yello      RUSIA<br/> 
6      Aute      Pinap      Yello      CHINA<br/> 
6      Aute      Orang      Orang      USA<br/> 
8      Jess      Pinap      Red      CAN<br/> 
9      Dave      Pinap      Blue      USA<br/> 

希望表格具有以下格式:

-想要的结果:

**ID**      **Name**      **FRUIT**      **FRUIT2**      **FRUIT3**      **FRUIT4**      **Description**      **Description2**      **Place**<br/> 
1      Jhon      Apple      Grape      --      --      Red      Green      USA<br/> 
1      Jhon      Apple      Grape      --      --      Red      Green      MEX<br/> 
5      Pala      Pinap      --      --      --      Yello      --      RUSIA<br/> 
...<br/> 

与此类似的情况是: How can "column in different row" be placed "different column in single row" 但是这种情况的区别在于,要更改为列的行数是随机数,不是固定的行数,而是最大4

我已经尝试过类似的方法来创建视图

SELECT REF_NO,min(LEDGERNAME) as 'BY',MAX(LEDGERNAME) as 'TO',AMOUNT
  FROM [yourtable]
  GROUP BY REF_NO,AMOUNT

在链接示例中

它不会更改原始表中的信息

如果我在选择中使用MAX或MIN,但我最多只能有4种信息,因此对我不起作用

1 个答案:

答案 0 :(得分:0)

这通过合并和一系列case语句填充表格来解决

BR! talbes不变,最大固定为4列