SQL Server が数値リテラルに割り当てる型は何ですか: 2. 、つまり 2 の後にドットが続きますか?
私が興味を持った理由:
select convert(varchar(50), 2.)
union all
select convert(varchar(50), 2.0)
戻り値:
2
2.0
2. と 2.0 の型の違いは何ですか?
SQLサーバーは、数値を保持できる最小限のストレージタイプを見つけることにより、数値自体に応じて数値リテラルにタイプを割り当てるようです。1222333 の値は int として格納され、1152921504606846975 は big int として格納されます。
ありがとう
編集:これが非常に重要である理由も追加したいと思います。SQL Server 2008 r2 では、select 2/5 は 0 を返しますが、select 2./5 は 0.4 を返します。これは、SQL サーバーがこれらの型を処理する方法によるものです。オラクルとアクセスでは、2/5 を選択します (オラクル: ダミーから 2/5 を選択) は 0.4 を返します。そうあるべきです。SQL Server 2012 でこの動作が修正されたのだろうか。