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

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

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);图片说明

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