以下代码工作但结果为null,是否有人帮我查找问题,似乎在最终结果中将字符串转换为int存在问题
DECLARE @dp1 varchar
DECLARE @dp2 varchar
DECLARE @dp3 varchar
DECLARE @dp4 varchar
DECLARE @dpp1 int
DECLARE @dpp2 int
DECLARE @dpp3 int
DECLARE @dpp4 int
set @dp1 = 'Emkanat'
set @dp2 = 'Masraf'
if (@dp1= 'Emkanat')
Begin
set @dpp1= 8
Select Emkanat*@dpp1 as val1 FROM Cardetail
End
if (@dp1= 'Tarahi')
Begin
set @dpp1= 8
Select Tarahi*@dpp1 as val1 FROM Cardetail
End
if (@dp1= 'Sandogh')
Begin
set @dpp1= 8
Select Sandogh*@dpp1 as val1 FROM Cardetail
End
if (@dp1= 'Masraf')
Begin
set @dpp1= 8
Select Masraf*@dpp1 as val1 FROM Cardetail
End
if (@dp2= 'Emkanat')
Begin
set @dpp2= 7
Select Emkanat*@dpp2 as val2 FROM Cardetail
End
if (@dp2= 'Tarahi')
Begin
set @dpp2= 7
Select Tarahi*@dpp2 as val2 FROM Cardetail
End
if (@dp2= 'Sandogh')
Begin
set @dpp2= 7
Select Sandogh*@dpp2 as val2 FROM Cardetail
End
if (@dp2= 'Masraf')
Begin
set @dpp2= 7
Select Masraf*@dpp2 as val1 FROM Cardetail
End
SELECT
Namecar,
(Masraf*@dpp1)+(Sandogh*@dpp1)+(Tarahi*@dpp1)+(Emkanat*@dpp1)+(Masraf*@dpp2)+(Sandogh*@dpp2)+(Tarahi*@dpp2)+(Emkanat*@dpp2)
as finalresult
FROM Cardetail
变量需要由varchar提供,然后根据字符
获取一个int答案 0 :(得分:0)
您的代码问题是您没有定义varchar变量的大小。更改下面给出的代码,您将获得所需的输出。我已将varchar大小定义为100,根据您的数据修改它。
DECLARE @dp1 varchar(100)
DECLARE @dp2 varchar(100)
DECLARE @dp3 varchar(100)
DECLARE @dp4 varchar(100)