数据库语句求助(行转列)

我的一张表里有三个字段,id,a,b。id字段不是唯一的,a字段里有RE开头和RG开头的值,b字段是它对应的结果,有0和1两种。我现在想写sql语句,查询结果为,以RE和RG开头的两种值分成两个字段RE.a和RG.a。如图所示:图片说明图片说明

2个回答

SELECT
rg.id,
re.a,
re.b,
rg.a,
rg.b
FROM
(SELECT
t1.*
FROM
test t1
WHERE t1.a LIKE 'RE%') re
RIGHT JOIN
(SELECT
*
FROM
test t2
WHERE t2.a LIKE 'RG%') rg
ON re.id = rg.id
AND SUBSTRING(re.a, 3) = SUBSTRING(rg.a, 3);图片说明

wu120877523
wu120877523 回复bczzm: 好的,谢谢
4 年多之前 回复
bczzm
bczzm 回复wu120877523: 改成ORACLE的函数就可以的,重要的是思路。应用到生产还得按照数据结构修改。这条SQL只是按你给的测试数据写的。
4 年多之前 回复
wu120877523
wu120877523 回复bczzm: 好像换成substr就可以了,但是我查出来的数据有缺失,用的是right join,右边的RE是全的,但是左边的RE就只显示了3个,应该是9个![图片说明](http://img.ask.csdn.net/upload/201606/26/1466950283_733291.png)
4 年多之前 回复
wu120877523
wu120877523 回复bczzm: 您好,我这里报错:substring标识符无效,请问您用的是什么数据库?我的是oracle![图片说明](http://img.ask.csdn.net/upload/201606/26/1466947833_83093.png)
4 年多之前 回复

我是这样写的,但是这样写数据就很紊乱,都重复了,想问问大神应该怎么解决,如果用decode怎么解决模糊查询的问题?图片说明图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐