2
次の簡単な2つのテーブルのセットアップ考えてみましょう:テーブルの値を別のテーブルの範囲と関連付けるにはどうすればよいですか?
drop table ranges;
drop table entries;
create table ranges (x integer, y integer, label varchar);
create table entries (v integer);
insert into ranges values(1, 5, "range1");
insert into ranges values(8, 10, "range2");
insert into ranges values(20, 30, "range3");
insert into entries values(0);
insert into entries values(3);
insert into entries values(8);
insert into entries values(12);
insert into entries values(23);
さて、クエリ
select * from entries as a, ranges as b
where a.v between b.x and b.y;
が私に
を与えるv|x|y|label 3|1|5|range1 8|8|10|range2 23|20|30|range3
、いずれにも該当しないentries
内の値であります結果の中には表示されません。
は、どのように私は私が(私はSASでPROC SQL
を使用しています)は、好ましくは、一般的なSQLに
v|x|y|label 0|NULL|NULL|NULL 3|1|5|range1 8|8|10|range2 12|NULL|NULL|NULL 23|20|30|range3
を得るようにentries
内の各エントリの行を返しますクエリを書くことができます。
私の心が落ち着くのを助けてくれてありがとう。なぜか分からないけど、私はたくさんの曲がりくねって、「外側の結合」を忘れていた。 –