我有两张桌子,一张用于音乐,另一张用于艺术家。音乐有专辑名称,artistID(外键)和发布。艺术家有3列,一列用于PKID,一列用于乐队名称,一列用于歌手姓名。如果它是乐队,乐队名称将被填写,歌手名称将为空。反之亦然。
我似乎无法创建一个表视图,如果bandname不为null,则会显示Band名称,反之亦然。我尝试了很多不同的方法,包括一个声明变量,但没有编译过。这是我尝试过的最新事情。我有点理解出了什么问题,但如果我不能宣布@BandName,我不知道该向前发展的方向。
CREATE VIEW MusicWithArtist AS
IF B.BandName IS NOT NULL
BEGIN
SELECT A.Title, A.ReleaseDate, B.BandName
FROM Music A, Artist B
WHERE A.ArtistID = B.ArtistID
END;
ELSE
BEGIN
SELECT A.Title, A.ReleaseDate, B.SingerName
FROM Music A, Artist B
WHERE A.ArtistID = B.ArtistID
END;
答案 0 :(得分:2)
CREATE VIEW MusicWithArtist AS
SELECT A.Title, A.ReleaseDate, ISNULL(B.BandName,B.SingerName) ArtistName
FROM Music A, Artist B
WHERE A.ArtistID = B.ArtistID
您使用哪种环境会阻止您使用JOIN?自SQL92以来,已经指定了Ansi风格的连接,这是多年前的事情并不好笑。
CREATE VIEW MusicWithArtist AS
SELECT A.Title, A.ReleaseDate, ISNULL(B.BandName,B.SingerName) ArtistName
FROM Music A
JOIN Artist B ON A.ArtistID = B.ArtistID;