SQL Simple Join, и я в тупике - PullRequest
4 голосов
/ 30 июля 2010

У меня есть таблица со столбцами:

JOB_NUM, HM_PH, BUS_PH, CALL1ST

Где job_num - это уникальное число

А столбцы HM_PH, BUS_PH и CALL1ST10-значные телефонные номера

Таким образом, используя порядок столбцов, приведенных выше, пример данных будет выглядеть следующим образом:

JOB_NUM, HM_PH,      BUS_PH,     CALL1ST
------------------------------------
12345,   4025557848, 9165897588, 7518884455  
10101,   8887776655, 8667416895, 5558884446

Я хочу получить 2 столбца.

JOB_NUM, PHONE

Где указывается номер задания рядом с каждым номером телефона, например:

JOB_NUM PHONE
---------------------
12345   4025557848  
12345   9165897588  
12345   7518884455  
10101   8887776655  
10101   8667416895  
10101   5558884446  

С чего начать?

Ответы [ 3 ]

10 голосов
/ 30 июля 2010

Вам нужен UNION (если вы хотите удалить дублирующиеся строки) или UNION ALL (если вы хотите сохранить дублирующиеся строки):

SELECT JOB_NUM, HM_PH AS PHONE FROM yourtable
UNION
SELECT JOB_NUM, BUS_PH FROM yourtable
UNION
SELECT JOB_NUM, CALL1ST FROM yourtable
ORDER BY JOB_NUM
2 голосов
/ 30 июля 2010

Создайте UNION ALL для всех нужных вам чисел (с дубликатами) или UNION, когда вам нужны уникальные строки:

select JOB_NUM,HM_PH AS PHONE
from YourTableName
union all
select JOB_NUM,BUS_PH AS PHONE
from YourTableName
union all
select JOB_NUM,CALL1ST_PH AS PHONE
from YourTableName
0 голосов
/ 30 июля 2010
create table yourtable
(
    id int,
    HM_PH nvarchar(10),
    BUS_PH nvarchar(10),
    CALL1ST nvarchar(10)
)


insert into yourtable
select 12345,   4025557848, 9165897588, 7518884455  
union
select 10101,   8887776655, 8667416895, 5558884446



select * from yourtable

select ID,p.Phone
from temptemp
unpivot( Phone for phoneCol in (HM_PH,BUS_PH,CALL1ST)) p
order by id 

 drop table yourtable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...