名前用と電子メール用の2 つの正規化されたSQL Server 2008テーブルがあります。
create table Name (NameId int, Name varchar(50))
create table Email (NameId int, Email varchar(50))
go
insert into Name values (1, 'JOHN SMITH')
insert into Name values (2, 'MARY SMITH')
insert into Name values (3, 'PHILL TAYLOR')
go
insert into Email values (1, 'john@hotmail.com')
insert into Email values (1, 'john@gmail.com')
insert into Email values (1, 'john.smith@hotmail.com')
insert into Email values (2, 'mary@hotmail.com')
insert into Email values (3, 'phill@hotmail.com')
insert into Email values (3, 'phill@gmail.com')
insert into Email values (3, 'taylor.phill@hotmail.com')
insert into Email values (3, 'taylor.phill@gmail.com')
go
これらのテーブルを結合すると、いくつかの行があり、その行にはメールが 1 つだけ含まれています。
Select name, email
from Name inner join Email on name.NameId=email.NameId
NAME EMAIL
------------- --------------------------
JOHN SMITH john@hotmail.com
JOHN SMITH john@gmail.com
JOHN SMITH john.smith@hotmail.com
MARY SMITH mary@hotmail.com
PHILL TAYLOR phill@hotmail.com
PHILL TAYLOR phill@gmail.com
PHILL TAYLOR taylor.phill@hotmail.com
PHILL TAYLOR taylor.phill@gmail.com
しかし、定義済みのレイアウトを満たすために、すべてのメールを同じ行に配置する必要があります。
NAME EMAIL1 EMAIL2 EMAIL3 EMAIL4
------------- ----------------- --------------- ----------------------- -----------------
JOHN SMITH john@hotmail.com john@gmail.com john.smith@hotmail.com
MARY SMITH mary@hotmail.com
PHILL TAYLOR phill@hotmail.com phill@gmail.com taylor.phill@hotmail.com taylor.phill@hotmail.com
単一の選択を使用することは可能ですか?
どんなアイデアでも大歓迎です
ティア
リカルド・ノゲイラ