sql - 将 varchar 值转换为 smallint 数据类型时转换失败

标签 sql sql-server sql-server-2008 tsql ssms

对包含 smallint 列的表运行 select 语句并收到上述错误:

SELECT * FROM [Database].[dbo].[TableName]
where ColumnName = 'ABC123'

我知道 smallint 需要是一个整数,但在表中,数据包含混合数据(即 ABC123);如何在不修改数据类型的情况下运行 select 语句?当我尝试修改数据类型时,SQL 告诉我需要删除并重新创建我无法执行的表...

谢谢!

最佳答案

使用 Cast 我能够得到结果:

select * from TableName
where cast(ColumnName as varchar) = 'ABC123'

这有效并返回了结果。谢谢!

关于sql - 将 varchar 值转换为 smallint 数据类型时转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37418230/

相关文章:

sql-server - 获取一个月中的天数 - mdx

c# - 我们如何在子查询 SQL Server 中分配局部变量

sql - 使用SQL Server 2008自动生成文本文件

mysql - 在 MySQL 中创建 View 时出错

SQL 查询包含 IF/ELSE 语句

c# - EF Core 生成反向查询

xml - SQL 2008 从 XML 列中检索属性值

sql - 按id级联删除所有表中的products和删除

python - 有没有办法在 python 中将 SQL 表用作类或对象?

sql-server - 如何在另一个程序中获取一个程序的RaiseError消息