首页 > 解决方案 > 如何将单列显示为与其他列值有某种关系的行

问题描述

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

- 原表:

**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/> 

类似的情况是: 如何将“不同行中的列”放置“单行中的不同列” 但是这种情况的不同之处在于,要更改为列的行数是随机数而不是行数固定,但最多 4

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

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

在链接示例中

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

如果我在选择中使用 MAX 或 MIN 但我最多有 4 种类型的信息,所以不适合我

标签: selectpsql

解决方案


这是通过使用合并和一系列案例语句来填写表格来解决的

BR!talbes 不可变,最多固定 4 列


推荐阅读