Mysql在具有新值的行之间插入空行

时间:2017-07-12 05:19:50

标签: mysql

我有一个包含2列NAMES&的数据库。 MYDATA.Column NAMES有客户名称,MYDATA有

列表
purchases:

**NAMES**   **MYDATA**
AMIT    PEPSI
AMIT    COKE
AMIT    LIMCA
JOHN    PEPSI
JOHN    COKE
PAUL    COKE
PAUL    COKE
JACK    PEPSI
JACK    LIMCA

我想要以下步骤:

a)使用SELECT语句并获取所需的数据和

b)将MYDATA转换为UNHEX(不敏感的情况)

c)根据NAMES专栏

排序

d)只要在NAMES列中看到新值,就在输出中输入一个新的空白行

渴望的结果:

**NAMES**   **MYDATA**
AMIT    PEPSI
AMIT    COKE
AMIT    LIMCA
<BLANK ROW> <BLANK ROW>
JOHN    PEPSI
JOHN    COKE
<BLANK ROW> <BLANK ROW>
PAUL    COKE
PAUL    COKE
<BLANK ROW> <BLANK ROW>
JACK    PEPSI
JACK    LIMCA

我已经能够用下面的命令实现步骤a,b,c。可以帮助我们如何实现步骤4以获得所需的结果。

SELECT NAMES, CAST(UNHEX( MYDATA) AS CHAR) FROM databasename.tablename WHERE LOWER(CAST(UNHEX(USER_DATA) AS CHAR)) LIKE '%jack%' OR LOWER(CAST(UNHEX(USER_DATA) AS CHAR)) LIKE '%amit%'
order by NAMES;

1 个答案:

答案 0 :(得分:0)

对于漂亮的打印来说,这并不是真正的mysql工作,但你可以通过与某些虚拟值的联合实现这一点。

select case when mydata = 'XXXXX' then '' else names end as name,
case when mydata = 'XXXXX' then '' else mydata end as value
from
(
select t.* 
from t
union
select distinct names, 'XXXXX' 
from t
) s 
order by names,mydata