返回超过指定的简单查询

时间:2012-05-08 15:24:47

标签: sql

我有一个数字列表,数字范围从1-500到11-500。我创建了一个查询来过滤除2-500之外的所有内容。但我仍然看到1-500,2-500和3-500。不确定我的查询有什么问题。查询太简单了搞砸了!!

示例查询:

    SELECT job_no, job_name
    FROM JC_JOB
    WHERE job_no like '2-5%'

实际查询:

SELECT  w.wrkordnbr
        , rtrim(w.jcjob) + ' ' + s.name
        , w.centernbr
        , w.status
        , w.servsitenbr
        , w.dept
        , s.address
        , s.city 
FROM    wrkorder w, servicesite s 
WHERE   s.servsitenbr = w.servsitenbr 
AND     status NOT IN(1,2,3,4,5,6) 
AND     s.name LIKE '2-5%

任何想法?

提前致谢。

2 个答案:

答案 0 :(得分:0)

怎么样?
SELECT job_no, job_name
FROM JC_JOB
WHERE job_no BETWEEN ('2-5') and ('2-6') 

我还没试过呢

答案 1 :(得分:0)

我很抱歉,但我不相信你。如果您的数据实际上与您描述的一样,那么查询应该只返回以2-5 ....开头的任何内容。

declare @jobs as table
(job_no varchar(20))

insert into @jobs
values (
'1-500'
),('2-500'),('3-500'),('100-500'),('120-500'),('200-500')


SELECT job_no
    FROM @jobs
    WHERE job_no like '2-5%'

返回:

job_no
2-500

例如,如果您的数据有job_no 112-500,而您的Where子句就是where job_no like '%2-5%',那么它会返回类似的内容:

job_no
2-500
112-500