我有一个包含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;
答案 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