好的,今天刚加入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,Level 16,State 1,Line 1
将nvarchar值'R8463'转换为数据类型int时转换失败。
明白我需要一个转换线,但不确定在哪里
请帮助
谢谢
答案 0 :(得分:2)
查看列上定义的数据类型。 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
答案 1 :(得分:1)
当你有一个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
答案 2 :(得分:0)
首先找出该表的数据类型,然后构建WHERE子句。像VARCHAR,NVARCHAR和DATE Type一样用单引号括起搜索文本。 使用Below命令获取列及其数据类型列表并构建查询。
SP_HELP [Database].[dbo].[Table]