3

例えば:

700 は 700.00 - 700.99 を意味します

400.1 は 400.10 ~ 400.19 を意味します

現在、私は次のようなものを持っています:

Select codes 
From code_table
where codes in ('700', '400.1')

700 と 400.1 を探しているだけなので、これは機能しません。

Select codes 
From code_table
where left (codes, 3) = '700'

これは機能しますが、問題は、私が探している最初の数値セットがここの 2 よりもはるかに多いことです。それぞれに対して行う必要なく、これを行う簡単な方法はありますか? between句も機能すると思いますが、それぞれにコードが必要ですか?

4

5 に答える 5

0

フロア()

SELECT codes FROM code_table WHERE FLOOR(codes) IN (..., ..., ...)

しかし、小数が必要です。では、単純に次のようにします。

SELECT codes FROM code_table WHERE codes LIKE '700.%' OR codes LIKE '400.1%'

これは標準 SQL の場合です。よりスマートなソリューションとして、私はそれを選択しますが、コードはや(... AS float)のように時間の経過とともに複雑になる傾向があります。だから私はおそらくストアドプロシージャを作成したいと思います。700.1.10700.19b

于 2013-07-11T16:55:39.207 に答える
0

数値にキャストして、範囲に対してテストできます。

Select codes 
From code_table
where cast (codes as float) >= 700 and
      cast (codes as float) < 700.1
于 2013-07-11T16:47:04.610 に答える