2012-05-08 14 views
2

私は、1から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% 

任意のアイデア?

ありがとうございます。

+1

job_noのデータ型がどのようなものですか?ちょうど私がこれを再現することができないと思っているだけです(私はjob_noに 'nvarchar'を使用しました) – pstrjds

+0

@ bird2920:これを確認しても、私はこの[リンク]を複製できません(http://www.sqlfiddle.com/# !4/d41d8/502) 'sqlfiddle' –

+1

ここには何か他のものがなければなりません。あなたは変数を使用していますか?これは上記のように正確にハードコードされていますか? –

答えて

0

私は申し訳ありませんが、私はあなたを信じていません。あなたのデータがために、job_no 112-500を持っていた場合

job_no 
2-500 

:あなたが説明するように、実際にデータがある場合、クエリは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%' 

戻り値を返す必要がありますたとえば、これは代わりにwhere job_no like '%2-5%'、それはそれはのようなものを返すという意味になるだろうしてあなたのWhere句:

job_no 
2-500 
112-500 
+0

wrkordernbr、rtrim(w.jcjob)+ '' + s.name、w.centernbr、w.status、w.servsitenbr、w.dept、s.address、s.city from wrkorder w、servicesites sここで、 s.servsitenbr = w.servsitenbrとステータスが(1,2,3,4,5,6)とs.nameのように '2-5%' – bird2920

+1

hrmmm .... '2-5のようなs.name % '句は、文の残りの部分にかかわらず、その法案に適合しないものを削除する必要があります。あなたは括弧を使用していないので、(これ)または(これとこれ)のケースにはなり得ません –

+0

何が間違っているのか理解しようとすることに戻ります。私はあなたのOPのような最も簡単な文を使って試してみることを提案し、バグを発見するために他の部分を追加することをお勧めします。何か間違っている必要がありますが、私はそれを見ていませんが、私はそれ以上のトラブルシューティングや詳細情報を提供するまで、私はこれ以上の支援はできません。 –

0

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

について、私は試していないそれは何

+0

私はそれがうまくいくかどうか分かりません。これはすべきですが、SELECT job_no、job_name FROM JC_JOB where job_no BETWEEN( '2-5')と( '2-6') –

+0

本当に、あなたは正しいと思います。 – Leandro

+0

リアンドロはあなたの答えを変えようとしています、あなたは正しい道にいると思います。彼の元のクエリがうまくいくはずですが、これも同様にトラブルシューティングに役立ちます。 –

関連する問題