【发布时间】:2014-02-07 11:54:30
【问题描述】:
我想获取不同范围的数据,例如“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
但它并没有为我提供独特的结果。请帮我看看我该怎么做。
【问题讨论】:
-
你得到的重复值是什么? SUBSCRIBER_ZIP 是某种文本字段而不是数字字段吗?如果是这样,它将使用文本排序,这意味着
"33"将介于"32000"和"34999"之间。虽然如果他们总是五个字符,我认为你会侥幸逃脱。 -
Subscriber_ZIP 是文本字段吗?
-
是的.. @SirajMansour 这不是一个大问题问题是如何获得不同的记录..
-
raman:你得到了重复的记录,因为有些东西比你的 zip 检查更令人满意。我想不出这是如何临时发生的,这就是为什么我要求提供其中一个副本的示例以试图更好地理解。
-
这是一个 XY 问题:修复查询没有用,因为问题出在表(或视图)
SUBSCRIBER中。请提供样本数据。 meta.stackexchange.com/questions/66377/what-is-the-xy-problem
标签: asp.net sql sql-server sql-server-2008 unique