どちらが優先され、その理由は何ですか? わかりやすくするために整数値を使用していますが、これらはフィールド名になります。
SELECT 2*1.0 / 3
SELECT CAST(2 AS float) / 3
SELECT CONVERT(float, 2) / 3
どちらが優先され、その理由は何ですか? わかりやすくするために整数値を使用していますが、これらはフィールド名になります。
SELECT 2*1.0 / 3
SELECT CAST(2 AS float) / 3
SELECT CONVERT(float, 2) / 3
最初のテーブルと CAST/CONVERT に関するパフォーマンスの観点から、すぐに一時テーブルを作成し、値 2 を使用してクエリを実行しました。
CREATE TABLE #temp (Two FLOAT)
INSERT INTO #temp VALUES (2)
SELECT * FROM #temp
SELECT Two*1.0 / 3 FROM #temp
SELECT Two*1E0 / 3 FROM #temp
SELECT CAST(Two AS FLOAT) / 3 FROM #temp
SELECT CONVERT(FLOAT,Two) / 3 FROM #temp
そこから選択するとき、いくつの異なる値を入力しても、実行計画と統計 IO は同じ数値 (それぞれ 4 分の 1) を返します。5、6、7、8、9 などの他の値、さらに多くの値を入力してみましたが、コストは同じでした。この上にリストされているリレーショナル以外の記事から-sql-server-is-concerned-which-is-better.aspx )、最初の方法を使用しても、少なくとも小さな値には影響がないようです (私は 2,000,000 を使用しました)。