我想获取不同范围的数据,例如“SUBSCRIBER_ZIP between '30000' and '31999'
”
和“SUBSCRIBER_ZIP between '39813' and '39901'
”和“SUBSCRIBER_ZIP between '32000' and '34999'
”。
我希望获得具有此搜索条件的所有活动记录(表示状态= 1)。我已经使用了Union,但它并没有为我提供独特的记录:
Select distinct(SUBSCRIBER_EMAIL), SUBSCRIBER_Id FROM
(select distinct(SUBSCRIBER_EMAIL),SUBSCRIBER_ID from SUBSCRIBER where SUBSCRIBER_ACTIVE = 1 and SUBSCRIBER_ZIP between '30000' and '31999'
Union
select distinct(SUBSCRIBER_EMAIL),SUBSCRIBER_ID from SUBSCRIBER where SUBSCRIBER_ACTIVE = 1 and SUBSCRIBER_ZIP between '39813' and '39901'
Union
select distinct(SUBSCRIBER_EMAIL),SUBSCRIBER_ID from SUBSCRIBER where SUBSCRIBER_ACTIVE = 1 and SUBSCRIBER_ZIP between '32000' and '34999'
) x
但它并没有为我提供独特的结果。请帮帮我怎样才能做到。
答案 0 :(得分:0)
为什么不使用OR
?
select distinct SUBSCRIBER_EMAIL, SUBSCRIBER_ID
from SUBSCRIBER
where SUBSCRIBER_ACTIVE = 1
and (
SUBSCRIBER_ZIP between '30000' and '31999' or
SUBSCRIBER_ZIP between '39813' and '39901' or
SUBSCRIBER_ZIP between '32000' and '34999'
)
答案 1 :(得分:0)
SELECT DISTINCT [SUBSCRIBER_EMAIL],[SUBSCRIBER_ID] FROM SUBSCRIBER WHERE ([SUBSCRIBER_ACTIVE] = 1) AND
(
(CAST(SUBSCRIBER_ZIP AS INT) BETWEEN 30000 AND 31999)
OR
(CAST(SUBSCRIBER_ZIP AS INT) BETWEEN 39813 AND 39901)
OR
(CAST(SUBSCRIBER_ZIP AS INT) BETWEEN 32000 AND 34999)
)
注意:请勿使用数字引用