sql-server - SQL 错误:将 varchar 值“,”转换为数据类型 int 时转换失败
问题描述
我正在为这个而头晕目眩。我不断收到错误。我遵循了其他问题的决议,但对我没有任何帮助。我真的希望有人可以在这里纠正我。
我想要的只是从视图中获取数据
SELECT Table_view.Information
FROM Table_View
但我不断收到此错误
将 varchar 值“,”转换为数据类型 int 时转换失败
我尝试了以下方法:
SELECT Table_View.Information
FROM Table_View
WHERE Table_View.Information NOT LIKE '%,%'
SELECT Table_View.Information
CASE WHEN CAST(Table_View.Information AS INT) = 1 THEN 'space'
ELSE CONVERT(VARCHAR, Table_View.Information) END
FROM Table_View
SELECT CAST (REPLACE(REPLACE(Table_View.Information, ' ,', ' '),'/', '') AS VARCHAR)
FROM Table_View
SELECT CONVERT(VARCHAR, REPLACE(REPLACE(Table_View.Information, ' ,', ' '),'/', ''))
FROM Table_View
SELECT Table_View.Information
CASE
WHEN Table_View.Information NOT LIKE '%,%' THEN CAST(Table_View.Information AS VARCHAR)
END
FROM Table_View
以上都不能帮助我解决问题。有什么建议么?我试过演员,转换,案例,替换..
解决方案
显然你应该使用try_convert()
or try_cast()
if 2012+。如果转换失败,将返回 NULL,而不是抛出错误。
也就是说, convert(money,...) 往往更宽容一点
例子
Declare @Table table (SomeCol varchar(50))
Insert Into @Table values
('$25.25')
,('- 252,525.25')
Select AsMoney = convert(money,SomeCol) -- int would fail
From @Table
退货
AsMoney
25.25
-252525.25
推荐阅读
- javascript - 将自定义字符串转换为 Angular 日期
- grails - Grails 3.3.11 集成测试 - 回滚事务
- jquery - 引导程序 | JQuery:如何在表单提交单击期间对字段启用“必需”验证?
- vba - SAP GUI 脚本记录仅捕获部分动作
- java - 为什么我的 Jsoup 代码没有返回正确的元素?
- javascript - 动态引导模式,jQuery 在首次加载时无法访问 html 元素
- html - 如何在 Angular 中启用单击项目
- r - 使用唯一标识符,将行值与 R 中的列名匹配
- continuous-deployment - 基于主干的部署:如何避免功能标志混乱?
- php - 如何在销毁会话后删除 *public_html/writable/session* 中的会话文件并防止获取错误的会话数据