這樣的事情可能嗎?
SELECT *
FROM [TABLE1]
WHERE [FIELDA] BETWEEN
(SELECT [FIELDB], [FIELDC]
FROM [TABLE2]
WHERE [set of conditions to ensure single record]);
而不是做:
SELECT *
FROM [TABLE1]
WHERE [FIELDA]
BETWEEN (SELECT [FIELDB] FROM [TABLE2] WHERE [set of conditions to ensure single record])
AND (SELECT [FIELDB] FROM [TABLE2] WHERE [set of conditions to ensure single record]);
謝謝,
uj5u.com熱心網友回復:
另一種選擇是將 BETWEEN 條件移動到相關子查詢中:
SELECT *
FROM [TABLE1]
WHERE EXISTS
(SELECT NULL
FROM [TABLE2]
WHERE [set of conditions to ensure single record]
AND [TABLE1].[FIELDA] BETWEEN [TABLE2].[FIELDB] AND [TABLE2].[FIELDC]);
在這種情況下,將子查詢限制為單個記錄并不是絕對必要的。它可以產生任意數量的記錄,只要該數量大于 0,條件就會為真。
uj5u.com熱心網友回復:
像這樣的事情可能會做:
with temp as
(select fieldb, fieldc
from table2
where set_of_conditions
)
select *
from table1 a join temp b on a.fielda between b.fieldb and b.fieldc;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346929.html
