将一行中的数据分成多列
Separating data in a row to multiple columns
我是 MySQL 的新手。我已经尝试使用选择和连接来过滤和组合来自不同表的数据。我正在努力解决的一件事是如何为一行输出多行。
这是我创建的一个示例,用于描述我正在尝试做的事情。一个人可以有 0 到 3 phone 个数字。
ID First Last Bus Phone Home Phone Mobile Phone
40550 Ed Zo 555-145-7424 333-743-1233 123-456-7890
46476 Rui Jun 234-567-8901 345-678-9012
26480 Matt Del 222-333-4444
我想为这个人拥有的每个 phone 个号码创建 1 行输出。
ID First Last PhoneType Number
40550 Ed Zo B 555-145-7424
40550 Ed Zo H 333-743-1234
40550 Ed Zo M 123-456-7890
46476 Rui Jun B 234-567-8901
46476 Rui Jun H 345-678-9012
26480 Matt Del M 222-333-4444
我应该查看哪些 SQL 语句?任何指针将不胜感激。
谢谢!
毫克
在MySQL中,最简单的方法是union all
:
select id, first, last, 'B' as phoneType, bus_phone
from t
where bus_phone is not null
union all
select id, first, last, 'h', home_phone
from t
where home_phone is not null
union all
select id, first, last, 'M', mobile_phone
from t
where mobile_phone is not null;
我是 MySQL 的新手。我已经尝试使用选择和连接来过滤和组合来自不同表的数据。我正在努力解决的一件事是如何为一行输出多行。
这是我创建的一个示例,用于描述我正在尝试做的事情。一个人可以有 0 到 3 phone 个数字。
ID First Last Bus Phone Home Phone Mobile Phone
40550 Ed Zo 555-145-7424 333-743-1233 123-456-7890
46476 Rui Jun 234-567-8901 345-678-9012
26480 Matt Del 222-333-4444
我想为这个人拥有的每个 phone 个号码创建 1 行输出。
ID First Last PhoneType Number
40550 Ed Zo B 555-145-7424
40550 Ed Zo H 333-743-1234
40550 Ed Zo M 123-456-7890
46476 Rui Jun B 234-567-8901
46476 Rui Jun H 345-678-9012
26480 Matt Del M 222-333-4444
我应该查看哪些 SQL 语句?任何指针将不胜感激。
谢谢!
毫克
在MySQL中,最简单的方法是union all
:
select id, first, last, 'B' as phoneType, bus_phone
from t
where bus_phone is not null
union all
select id, first, last, 'h', home_phone
from t
where home_phone is not null
union all
select id, first, last, 'M', mobile_phone
from t
where mobile_phone is not null;