14

テーブルに bigint (ProductSerial) 型の列があります。like 演算子を使用して、製品シリアルでテーブルをフィルター処理する必要があります。しかし、同様の演算子は整数型には使用できないことがわかりました。

=これには他の方法がありますか(演算子を使用したくありません)。

4

5 に答える 5

0

データベースを制御できる場合は、計算列を追加して整数値を文字列にコピーできます。

ALTER TABLE MyTable
ADD CalcCol AS (CAST(ProductSerial AS VARCHAR)) PERSISTED

そして次のようなクエリ:

SELECT *
FROM MyTable
WHERE ProductSerial LIKE '%2548%'

これにより、計算が挿入/更新に移動し、各クエリのすべての行を変換するのではなく、挿入/更新された行のみが移動されます。これは、更新された列が多数ある場合に問題になる可能性があります。これは、これらに非常にわずかなオーバーヘッドが追加されるためです。

モジュラスを使用して数学的に行う方法があるかもしれませんが、これには多くの作業とテストが必要です。

于 2013-08-27T11:34:04.340 に答える