Oracle
從一個表中選擇,其中範圍保存在屬於另一個表的列中
我正在嘗試在Oracle SQL中編寫一個 SELECT 語句,其中我有一個表 A,其中包含一個“START”列和一個包含分區編號的“END”列。
我希望表 B 只提取表 A 中列“START”和“END”之間的那些分區號
例如
表_A
ID | START_DIVISION | END_DIVISION ---+----------------+-------------- 1 | 01 | 03 2 | 06 | 08 3 | 09 | 09
表_B
DivisionNo | DivisionName -----------+---------------------------- 01 | London 02 | East Midlands 03 | West Midlands 04 | Yorkshire 05 | Lancashire 06 | Scotland 07 | South Wales 08 | North Wales 09 | Rep of Ireland
我所追求的是這樣的:
SELECT * FROM TABLE_B WHERE DivisionNo BETWEEN TABLE_A.START_DIVISION and TABLE_A.END_DIVISION
我假設一個
JOIN
語句可以做到這一點,但我不太確定如何在 SQL 中做到這一點。對此的任何幫助將不勝感激。
在 ANSI SQL 和 SQL Server 中,您只需使用 INNER JOIN。我不知道 Oracle 是否支持這一點,但如果它不支持,我會感到驚訝……沒有 DDL,所以在我的腦海中輸入:
SELECT * FROM table_b AS b INNER JOIN table_a AS a ON b.DivisionNo BETWEEN a.start_division AND a.end_division