转换varchar

时间:2017-08-01 02:47:00

标签: sql sql-server nvarchar

好的,今天刚加入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时转换失败。

明白我需要一个转换线,但不确定在哪里

请帮助

谢谢

3 个答案:

答案 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]