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

どうですか

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

私はそれを試していません

于 2012-05-08T16:01:00.007 に答える
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_no112-500があり、Where句が代わりにthisでwhere job_no like '%2-5%'ある場合、次のようなものが返されることは理にかなっています。

job_no
2-500
112-500
于 2012-05-08T16:06:52.110 に答える