对具有smallint列的表运行select语句并收到以上错误:
SELECT * FROM [Database].[dbo].[TableName]
where ColumnName = 'ABC123'
我知道smallint需要是一个整数,但在表中,数据包含混合数据(即ABC123);如何在不修改数据类型的情况下运行select语句?当我尝试修改数据类型时,SQL告诉我我需要删除并重新创建我不能做的表...
谢谢!
答案 0 :(得分:3)
使用Cast我能得到结果:
select * from TableName
where cast(ColumnName as varchar) = 'ABC123'
这工作并返回结果。谢谢!
答案 1 :(得分:1)
您只需选择数字。如果您尝试搜索多个列,则可以执行以下操作:
SELECT * FROM [Database].[dbo].[TableName]
where SmallIntColumn = 123 AND CharColumn = 'ABC'
如果列是某种类型的数字,则它不能包含非数字条目。