Mysql 显示结果-根据条件将1列中的数据分为2列
你好,我需要帮助 我的查询显示以下结果:Mysql 显示结果-根据条件将1列中的数据分为2列,mysql,sql,oracle,toad,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 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')
你的数据库类型有点乱…是mysql还是oracle?不管怎么说,我是根据你的select语句猜到了oracle。我使用的是基于“join”的语法,我发现它比这里的更容易阅读。将版本为1的select语句左键连接到版本为2的select语句。如果有版本3,请在其中添加另一个联接
select a.id, a.name, a.colour, b.colour
from (select * from table1 where version = 1) a
left join (select * from table1 where version = 2) b
on a.id = b.id
这假设版本1始终存在,并且如果在设计时知道可能拥有的最大颜色数,则不可能存在没有版本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数据库版本。根据您使用的版本,请查看列表、WM_CONCAT和类似内容让我重新定义这个问题-它是oracle。。这一切都来自同一张桌子的颜色也。。。选择tabble1.ID、table1.NAME、table1.COLOR、table1.VERSION 从表1到表2 其中table1.ID=table2.ID 身份证在哪 选择ID 从表1到表2 其中table1.ID=table2.ID 和“1”中的版本
和“1”和“2”中的版本请向我们展示表1和表2的模式表结构。你需要一个在MySQL和Oracle中都能工作的代码吗?在设计时指定给特定名称的最大颜色数是已知的吗?我不想在数据库中插入任何东西。。。我只想修改当前查询并根据需要显示结果。。我真的很感谢你的帮助……让我重新解释一下这个问题——这是甲骨文。。这一切都来自同一张桌子的颜色也。。。选择tabble1.ID、table1.NAME、table1.COLOR、table1.VERSION FROM table1、table2其中table1.ID=table2.ID和ID in SELECT ID FROM table1、table2其中table1.ID=table2.ID和“1”中的版本以及“1”、“2”中的版本