私はColdFusion8とSQLServer2008R2を使用しています。
値の列をクエリして、範囲内の値を持つ行を取得しようとしています。列は数値である必要がありますが、そうではありません。これは、varcharとして(他の誰かによって)設定されています。100,000行以上のデータがあります。データの偽のサンプルは次のとおりです。
ID COLUMN
1 1
2 1.2
3 0.9
4 5
5 -6
私のクエリは次のようになります。
select column
from table
where column between 1 and 2
whereステートメントの列がvarcharであるため、このクエリは実行されず、変換エラーが発生するため、whereステートメントを次のように変更する必要があります。
where column between '1' and '2'
さて、このようなクエリを実行すると、実行されますが、結果が得られません。ただし、列フィールドの値の多くがクエリ対象の範囲内にあることがわかっているため、結果が表示されるはずです。
フィールドが数値ではなくvarcharであるために、結果が表示されないのではないかと思います。それは私の結果を台無しにしているのでしょうか?
また、検索しているレコードが100,000以上ありますが、数値フィールドの代わりにvarcharフィールドを使用すると、パフォーマンスに大きな影響がありますか?