前提・実現したいこと
あるテーブルのカラムをint型で比較を行い、出力したい。
比較したいテーブルのカラムの型はvarcharである。
発生している問題・エラーメッセージ
varchar の値 '20200000000000' の変換が int 型の列でオーバーフローしました。
該当のソースコード
sql
1alter table aaaaa alter column xxxxyyzzaabbcc int 2DECLARE @xxx varchar(100) = 202000; 3DECLARE @yyy int; 4SET @xxx = @xxx +'00000000'; 5print @xxx; 6set @yyy = CONVERT(int,@xxx);
試したこと
intを使用せずにvarcharで行った。データが多すぎて正解かどうかわからなかった。
データが多すぎてというのは、テーブルのデータ(行)が多いため「文字列の大小比較は辞書式順序に従う」とあったことの確認ができませんでした。
調べた結果、文字列の大小比較は辞書式順序に従うとあったため数値型にした方が確実だと思い数値型にしたい。
補足情報(FW/ツールのバージョンなど)
SQLServer2017を使用
回答1件
あなたの回答
tips
プレビュー