我在line1上收到错误,但我所做的只是与

时间:2018-09-19 08:43:59

标签: sql-server

我有这个查询:

WITH NumberedMyTable AS(
select top 50
    isnull(Project, '') Project,
    isnull(PRDesc, '') PRDesc, 
    isnull(PRNum, 0) PRNum,
    isnull(PRLine, 0) PRLine,
    isnull(Quantity, '') Quantity,
    isnull(Balance,'NO REF') [Balance],
    isnull(Unit,  '') Unit,
    ROW_NUMBER() OVER (ORDER BY Project) AS RowNumber
FROM [SYSMGT].[dbo].[vw_PRItemBalance]
where Project like '%one%'
order by Project)

Select * 
from NumberedMyTable 
where Rownumber between 0 and 10

问题是,我收到一条错误消息:

  

信息8114,第16级,状态5,第1行   将数据类型varchar转换为数字时出错。

vw_PRItemBalance是我在sql server 2014 Management Studio中创建的视图

1 个答案:

答案 0 :(得分:0)

只需验证以下几列: 这些列必须是VARCHAR类型。如果没有,则更改为ISNULL(Col,0)

   isnull(Project, '') Project,
    isnull(PRDesc, '') PRDesc,
    isnull(Quantity, '') Quantity,
    isnull(Balance,'NO REF') [Balance],
    isnull(Unit,  '') Unit,

这些都是整数类型,如果没有,则使用ISNULL(col,'')更改它

isnull(PRNum, 0) PRNum,
isnull(PRLine, 0) PRLine,