Meninjau kode dan pernyataan kasus telah expression <= 1.
bertentangan<= 1
Saya tidak yakin apa tujuannya 1.
. Adakah pikiran?
sql-server
Pete Forester
sumber
sumber
1.
literal sebagai numerik (1,0), bukan bilangan bulat karena periode. Mungkin itu ditentukan untuk mencocokkan tipe data dari ekspresi (praktik terbaik). Secara pribadi, saya akan menentukan1.0
dalam kasus itu.0
setelah titik desimal dan fakta yangdecimal
memiliki prioritas lebih tinggi dari datatype daripadaint
sehingga konstanta akan secara implisit dilemparkan pula jika diperlukan akan membuat saya berpikir bahwa itu kemungkinan kesalahan pengetikan daripada sengaja.Jawaban:
1.
adalahNUMERIC
(atauDECIMAL
) konstan, sedangkan1
adalahINTEGER
konstan. Dalam beberapa kasus, berguna untuk menentukan tipe data konstanta secara eksplisit untuk menghindari konversi tipe implisit yang tidak perlu (atau tidak diinginkan).Pertimbangkan, misalnya
Kemudian
select 1/f1 from t
mengembalikan0
(INTEGER
), sementaraselect 1./f1 from t
mengembalikan0.5
(DECIMAL
).Orang mungkin berasumsi bahwa di sisi kiri perbandingan dalam contoh Anda ada
DECIMAL
kolom, dan secara eksplisit menentukanDECIMAL
konstanta secara marginal dapat meningkatkan kinerja dengan menghindari tipe gips implisit.sumber