0

我有两个表用于存储有关人员的信息。一个保存用户名和地址信息,另一个保存多个电话号码,这些电话号码通过外键链接到用户 ID。现在我想创建一个视图,其中只有我显示在一行上的用户,并且在电话号码列中,应该列出链接到该用户的所有电话号码。我已经尝试过完全加入,它会根据用户拥有的电话号码多次给我同一个用户。

现在,用于创建视图的代码如下所示

CREATE VIEW StudentData AS SELECT COALESCE(Students.FirstName + ' ', ' ') + COALESCE(Students.LastName, ' ') AS 'Name', COALESCE(Students.City + ', ', ' ') + COALESCE(Students.LastName, '') AS 'Name', COALESCE(Students.City + ', ', '')国家 + ', ', ' ') + COALESCE(Phone.PhoneType, ' ') + COALESCE(Phone.PhoneNumber + ', ', ' ') + COALESCE(Students.StreetAdress + ', ', ' ') + COALESCE( CAST(Students.ZipCode AS varchar(10)), ' ') AS 'Adress', COALESCE(CAST(Students.Birthdate AS varchar(11)) + ', ', ' ') + COALESCE(Students.StudentType, ' ' ) 作为学生的“信息”完全加入电话上 Students.StudentID = Phone.StudentID

提前致谢

4

1 回答 1

3

这是一个字符串连接问题。查询在 SQL Server 中看起来像这样:

create view v_userphone
    select u.username, u.address,
           stuff((select ','+phonenumber
                  from userphone up
                  where up.userid = u.userid
                  for xml path ('')
                 ), 1, 1, ''
                ) as phonenumbers
    from users u;
于 2013-09-11T10:58:30.140 回答