我使用的是 SQL Server Management Studio 18。
这是我的代码
select *
from Table
where convert(numeric, ["신규가입자수"] ) > 100
列(신규사입자수)的内容是数字,数据类型是varchar(50)
,如下所示。
“日期”(varchar) | "신규사입자수" (varchar) |
---|---|
“2018-07-18” | “2194” |
“2018-07-17” | “2123” |
我认为这是非常简单的代码,但它不起作用。
他们中没有一个不仅转换数字,还转换 int、float 等。
即使当我尝试导入 csv 文件并将该列设置为数字时,它也无法导入为数字,只有在变为 varchar
时才能成功导入。
我不知道是什么问题。
答案 0 :(得分:0)
如果你想要结果集中的转换值,那么你需要选择它:
select t.*,
convert(numeric, t.["신규가입자수"] ) as converted_value
from Table t
where convert(numeric, ["신규가입자수"] ) > 100;
如果出现错误,请改用 try_convert()
:
select t.*,
try_convert(numeric, t.["신규가입자수"] ) as converted_value
from Table t
where try_convert(numeric, ["신규가입자수"] ) > 100;
如果问题是双引号,则删除它们:
select t.*,
try_convert(numeric, replace(t.["신규가입자수"], '"', '') ) as converted_value
from Table t
where try_convert(numeric, replace(["신규가입자수"], '"', '') ) > 100;