转换 varchar 时 SQL 转换失败



好的今天刚加入stackoverflow,我对脚本非常陌生,特别是SQL 我正在尝试运行下面以获取发票编号

SELECT 
* 
FROM 
[Database].[dbo].[Table]
WHERE
[EPSINO] = 915561
AND [EPYEA4] = 2017
AND [EPSPYN] = EPSPYN
AND [EPCONO] = 100
AND [EPDIVI] = 400
GO

但是我收到错误

Msg 245,级别 16,状态 1,第 1
行 将 nvarchar 值"R8463"转换为数据类型 int 时转换失败。

了解我需要在某处有转换行,但不确定在哪里

请帮忙

谢谢

查看列上定义的数据类型。 nvarchar 列需要用单引号括起来。 例如,EPSPYN 很可能是一个 nvarchar 列。 我无法判断其余列是 int 还是 nvarchar。 您需要查看表定义并适当地用引号括起来。

select * 
from[Database].[dbo].[Table]
where [EPSINO] = 915561
and [EPYEA4] = 2017
and [EPSPYN] = 'EPSPYN'
and [EPCONO] = 100
and [EPDIVI] = 400
GO

当你有一列 char 类型时,你必须在单引号内比较它的值。因此,如果第EPSPYN列是 char 类型,请确保针对它的值写在单引号内。

Select * From[Database].[dbo].[Table]
WHERE
[EPSINO] = 915561
and [EPYEA4] = 2017
and [EPSPYN] = 'EPSPYN' -- See this.
and [EPCONO] = 100
and [EPDIVI] = 400
GO

首先找出该表的数据类型,然后构建 WHERE 子句。 像 VARCHAR、NVARCHAR 和 DATE 类型将搜索文本括在单引号中。 对列及其数据类型的列表使用 Under 命令并生成查询。

SP_HELP [Database].[dbo].[Table]

最新更新