5

多くのタイプの値、ファイルサイズを格納するNTEXTタイプのフィールドを持つテーブルがあります。レコードのリストに対してクエリを実行し、ファイル サイズを合計しようとしていますが、この厄介な問題が発生しています。

NTEXTはINTまたはBIGINTに直接/暗黙的に変換できないため、最初にVARCHARに変換してから、 INT または BIGINT に変換しようとしています。VARCHAR値をINTまたはBIGINTに変換しようとするまで、すべてうまくいきます。

ここに私のクエリと結果があります:

最初に次のことを試してみましたが、問題はなく、出力は61069 (値は ntext 型のまま) です。

SELECT FileSize
FROM dbo.myTable
WHERE ID = 111

今、私はそれを varchar として変換/キャストしますが、やはり問題ありません。出力は61069 (現在は varchar タイプ) です。

SELECT CONVERT(VARCHAR, FileSize)
FROM dbo.myTable
WHERE ID = 111

最後に、VARCHAR 値を BIGINT に変換して SUM() やその他の計算を実行できるようにしますが、今回は「データ型 varchar を bigint に変換中にエラーが発生しました。」というメッセージが表示されます。

SELECT CONVERT(BIGINT, CONVERT(VARCHAR, FileSize))
FROM dbo.myTable
WHERE ID = 111

代わりに INT に変換しようとすると、「varchar 値 '7/1/2008 3:39:30 AM' をデータ型 int に変換するときに変換に失敗しました

SELECT CONVERT(INT, CONVERT(VARCHAR, FileSize))
FROM dbo.myTable
WHERE ID = 111

私は完全に迷っています。これを引き起こしている可能性のあるアイデアはありますか?

4

1 に答える 1