amount
タイプの列を持つテーブルがありますDEC
。
次のクエリが機能します。
SELECT * FROM mytable WHERE amount < '1';
SELECT * FROM mytable WHERE amount = '1.5';
つまり、 is のような引用符を文字値に使用してもamount
(実際は数値であるにもかかわらず)、クエリは引き続き機能します。
私の質問は次のとおり
です。これは、SQL Server がデータ型が実際には数値であることを「理解し」、SQL を実行するときに引用符を無視するためですか、select
または
SQL Server が最初に値をテキストに変換amount
してから比較を行うためですか?したがって、これにはパフォーマンスがあります変換によるオーバーヘッド?