0

nvarcharです(15)

上記の列は、たとえば数字と文字で構成されています

は次のようなデータで構成されます: 行 1: 60 単位行 2 : 2 単位行 3 : 100 単位行 4: 1000 単位

数値のみを別の列に入れたいですか? どうすればそれを行うことができますか?

SELECT CONVERT(INT, column) as abc from table
4

1 に答える 1

1

データに実際に が含まれている場合はunits、次を使用できますreplace

select 
  cast(replace(col, ' units', '') as int) col
from yt

デモで SQL Fiddle を参照してください

substringandを使用しcharindexて、単語の前のすべてを返すこともできます。

select cast(substring(col, 1, charindex(' ', col)) as int) col
from yt

SQL Fiddle with Demoを参照してください。

のない数値がある場合はunits、次を使用できます。

select 
  case 
    when charindex(' ', col) > 0
    then cast(substring(col, 1, charindex(' ', col)) as int)
    else cast(col as int) end col
from yt;

デモで SQL Fiddle を参照してください

于 2013-06-06T10:24:05.867 に答える