我刚开始为类学习SQL课程,我得到了以下错误:
将nvarchar值“ewew”转换为数据类型int时,
转换失败。
我有张桌子上有球员的名字,地址和邮政编码。
我想要做的是从下面的PostalCode
( 75045 )中获得一份篮球运动员的名单。
我是这样写我的查询的:
SELECT *
FROM [dbo].[BasketballPlayers]
WHERE [PostalCode] = 75045
有人能解释一下可能发生了什么吗?
发布于 2019-10-03 15:38:50
您正在将字符串[PostalCode]
与数字75045
进行比较,因此它尝试将两个值转换为相同的类型,在本例中是数字类型int。不幸的是,"ewew“不能转换为一个数字。
您需要做的是将两者作为字符串进行比较,因此:
SELECT*
FROM [dbo].[BasketballPlayers]
WHERE [PostalCode] = '75045'
这允许您将两者作为字符串进行比较。
发布于 2019-10-03 15:44:32
您还可以使用TRY_CAST
,当尝试进行无效转换(字符串到int)时,它将返回有效的转换或NULL
。
SELECT *
FROM [dbo].[BasketballPlayers]
WHERE TRY_CAST([PostalCode] as INT) = 75045
示例:
TRY_CAST('ewew' as INT) = NULL
TRY_CAST('75045' as INT) = 75045
https://stackoverflow.com/questions/58222466
复制相似问题