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

您还可以使用substringandcharindex返回单词之前的所有内容:

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 回答