テーブルにnvarchar(200)
、整数 (文字列として) と非整数の文字列および記号が混在する列があります。たとえば、いくつかのサンプルデータ:-
最初の投稿で varchar(200) と書き込んで申し訳ありませんが、実際には 'nvarchar(200)' です
02
0
.../
125
00125
/2009
1000
0002589
000.00125
このコラムを注文するにはどうすればよいですか?
テーブルにnvarchar(200)
、整数 (文字列として) と非整数の文字列および記号が混在する列があります。たとえば、いくつかのサンプルデータ:-
最初の投稿で varchar(200) と書き込んで申し訳ありませんが、実際には 'nvarchar(200)' です
02
0
.../
125
00125
/2009
1000
0002589
000.00125
このコラムを注文するにはどうすればよいですか?
このクエリを使用できます
SELECT CASE
WHEN ISNUMERIC(colName)=1 THEN ROUND(colName, 0)
ELSE 0 END AS [colName]
FROM tblName
CAST と Convertを使用して、文字列型の値を int 型に変換できます。ただし、値が数値であることを確認してください。
select convert(int,'123')
select CAST('123' as int)
多くの DBMS にはCAST()
、あるデータ型を別のデータ型に変換できる関数があります。
MySQLについては、このサイトをご覧ください
を使用して、varchar が適切な数を保持している与えられCAST
たものに変換できます。varchar
INT
SELECT CAST(varCharCol as Int)
例えば
col1 as Varchar(10)
col1 = '100'
INTへの変換は成功します
しかしcol1 = '100 xyz'
、プロセスで失敗する場合。
文字列を見ると、 number of を使用しLTRIM
てREPLACE
数字を取得するか、正規表現を使用してコンマ区切りの数値を取得する必要がある場合があります。それも、元の文字列がどのように見えるかはあまり明確ではありません。