mysql - 显示结果 - 根据条件将 1 列中的数据分为 2 列

标签 mysql sql oracle toad

您好,我需要帮助...

我的查询显示以下结果:

Id      name           color    Version
1       leather        black      1
1       leather        brown      2
2       suede          brown      1
3       cloth          green      1
3       cloth          blue       2

我想显示以下内容:

Id      name           color    Color_2    
1       leather        black      brown     
2       suede          brown      
3       cloth          green      blue

查询很简单 目前

SELECT ID, NAME, COLOR,VERSION
FROM table1,table2  
WHERE table1.ID = table2.ID 
AND id in 
    (SELECT ID 
    FROM table1,table2 
    WHERE table1.ID = table2.ID  
    AND VERSION in ('1'))
AND VERSION in ('1','2')

最佳答案

一个简单的(如果您在设计时知道您可能拥有的最大颜色数)

drop table my_test;

create table my_test (
  id          number,
  name        varchar2(32),
  color       varchar2(32),
  version     number);

insert into my_test values(1,'leather','black',1);
insert into my_test values(1,'leather','brown',2);
insert into my_test values(2,'suede','brown',1);
insert into my_test values(3,'cloth','green',1);
insert into my_test values(3,'cloth','blue ',2);

set linesize 200
select min(id) id,
       name,
       max(decode(version,1,color,null)) color,
       max(decode(version,2,color,null)) color_2
  from my_test
 group by name
 order by 1;

        ID NAME       COLOR      COLOR_2   
---------- ---------- ---------- ----------
         1 leather    black      brown     
         2 suede      brown                
         3 cloth      green      blue      

3 rows selected.

这适用于任何 Oracle 数据库版本。根据您使用的版本,查看 LISTAGG、WM_CONCAT 等( here )

关于mysql - 显示结果 - 根据条件将 1 列中的数据分为 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964223/

相关文章:

mysql - 行数没有不同

php - PHP 中的空 MySQL 查询结果

mysql - 使用 Apache Drill 的 GROUP_CONCAT() 的替代方案是什么?

Oracle:如果字段为空则显示特殊文本

java - 通过 servlet 在 oracle 中获取第 2 行、第 3 行....200 行的表

database - 具有不等条件的合并连接算法

MySQL - 相关子查询失败,where 子句中的列未知

php - PHP-mssql-mssql_get_last_message()返回空字符串

sql - 从Polybase连接到hadoop时,连接被拒绝

sql - TSQL:选择插入中的if语句