私は8桁のTEXTフィールド(Codeと呼ばれます)を持っていて、 "code mod 3が0である"を選択したいと思っています。 このwhere句をms-sqlに書くにはどうすればよいですか?私は、クエリが他のバージョンのSQLでも同じでなければならないと考えています。ありがとう。where句のテキストフィールドで算術演算を行う方法は?
0
A
答えて
5
- DONT DO THIS! where句にスカラー計算を置くとSARGableになりません。つまり、索引を使用できず、表スキャンを実行する必要があります。
2番目 - DONT DO THIS!いずれかのコードがINTにキャストできない場合、これは失敗します。第三に
- あなたはまだ2つの警告にもかかわらず、これを実行したい場合は、これはどのようにある:私はOPは私がドン...それはTEXTフィールドだったと言って質問を編集しているかもしれないと思う
-- If field is varchar
WHERE CAST(Code AS INT) % 3 = 0
-- If field is TEXT
WHERE CAST(CAST(Code AS VARCHAR(10)) AS INT) % 3 = 0
1
ないことがMSSQLに同じだかどうかわからが、MySQLで:まず
SELECT * FROM tbl WHERE Code % 3 = 0;
+0
」元々そこにあったことを思い出してください。私のソリューションがTEXT列で動作するかどうかは分かりません。 – Travesty3
関連する問題
- 1. Oracleタイムスタンプ(SQL)で算術演算を実行する方法は?
- 2. Javaでの算術演算
- 3. LINQの3項演算子where句
- 4. Springプロパティで算術演算を行うには?
- 5. enum値の算術演算
- 6. int - Javaの算術演算
- 7. 算術演算がオーバーフロー
- 8. オーバーロード算術演算子
- 9. アセンブリーでの算術演算の登録
- 10. GWTでの算術演算評価
- 11. 正規表現での算術演算
- 12. GLSL算術演算子GLSLで
- 13. Javascriptの算術演算の加算演算子はありますか?
- 14. long long型の算術演算/論理演算
- 15. ポインタのポインタの算術演算(* argv [])?
- 16. 算術演算用ポインタをキャストする -
- 17. 算術演算をSYSTEMTIMEで実行する
- 18. y(x)関数の算術演算R
- 19. Rails - 時間オブジェクトの算術演算
- 20. 指数値の算術演算
- 21. Perlでは、引用符で簡単な算術演算を行う方法はありますか?
- 22. JSTL ELで現在の日付を取得し、算術演算を行う
- 23. OR演算子を使用したSQL Where句の使用
- 24. タプル演算を行うエレガントな方法
- 25. 非常に大きな数値で算術演算を行うアルゴリズム
- 26. 値のテーブルから算術演算を計算する
- 27. C#の基本的な算術演算はアトミックです
- 28. 算術演算子を関数として扱う
- 29. HLSLの>算術演算子は何をしますか?
- 30. D2007でのポインタ算術演算をどのようにするのですか?
+1は正しい考えです。 CASTは 'TEXT'と' INT'の間では動作しません(OPは文字通りMSSQLの従来の 'TEXT'型を意味すると仮定します)。これを行う必要があります: 'CAST(CAST(VARCHAR(25))AS INT)'。 – vcsjones
これはありがとう、私は彼がvarcharを意味すると思ったが、私は両方の可能性を今追加した。 –