2

我有一个数据列表,其数字范围为 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%

有任何想法吗?

提前致谢。

4

2 回答 2

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子句是 this ,where job_no like '%2-5%'那么它会返回如下内容是有意义的:

job_no
2-500
112-500
于 2012-05-08T16:06:52.110 回答
0

关于什么

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

我没试过

于 2012-05-08T16:01:00.007 回答