T-SQL(MS-SQL)がデータ型キャストを処理する方法について、簡単に質問しました。私は以下のそれぞれの値を返すこれらの2つのクエリを持っていますが、なぜ私は2番目のものがこのように表示されているのだろうかと思っています。完全な価値は実際にキャプチャされていますか?問題の列のデータ型は浮動小数点型です。 IF文を使って比較するには、これらの値が等しいことが必要です。MS-SQL型キャストロジック
クエリ1:
SELECT SUM ([CS_EQ_SHPD]) as CS_EQ_SHPD
FROM [Supplies_DB].DBO.[ITEM]
LEFT JOIN [Supplies_DB].DBO.[BU]
ON BU_# = Business_Unit
WHERE FISC_WEEK = '49' AND FY17_Market = 'Southeast'
戻り値: 2953432.88
クエリ2:
SELECT CAST(SUM ([CS_EQ_SHPD]) AS NVARCHAR(50)) as CS_EQ_SHPD
FROM [Supplies_DB].DBO.[ITEM]
LEFT JOIN [Supplies_DB].DBO.[BU]
ON BU_# = Business_Unit
WHERE FISC_WEEK = '49' AND FY17_Market = 'Southeast'
戻り値: 2.95343e + 006
表記を望まないが、値をnvarchar(50)にしたいが、2953432.88のように見える? –
ええ、でも、これはバックグラウンドでどうやって動くのか、もっと興味があります。なぜ、50文字が浮動小数点値全体を保持するのに十分な場合、最後の非小数点の桁から始まる "e +"のようなのでしょうか? –
@@ versionとは何ですか? –