0

我有两张桌子,一张用于音乐,一张用于艺术家。音乐有专辑名称、artistID(外键)和发布日期。Artist有3列,一列PKID,一列乐队名,一列歌手名。如果是乐队,则填写乐队名称,歌手名称为空。反之亦然。

如果bandname 不为null,我似乎无法创建一个显示乐队名称的表格视图,反之亦然。我尝试了许多不同的方法,包括一种声明变量的方法,但从未编译过。这是我尝试过的最新方法。我有点理解出了什么问题,但如果我不能声明@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;
4

1 回答 1

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;
于 2012-12-14T02:23:30.743 回答