0

私は2つのテーブルを持っています。1つは音楽用、もう1つはアーティスト用です。音楽にはアルバム名、artistID(外部キー)、およびリリースがあります。アーティストには、PKID用、バンド名用、歌手名用の3つの列があります。バンドの場合、バンド名が記入され、歌手名はヌルになります。およびその逆。

バンド名が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の使用を妨げる環境は何ですか?? Ansi スタイルの結合は SQL92 以降で指定されていますが、これは何年も前のことであり、おかしなことではありません。

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 に答える