2015-09-07 56 views
0

如何比較變量@PersoanaAnterioara@PersoanaCurenta? '@PersoanaCurenta'.--errorSQL Server在比較兩個變量時出錯

附近

不正確的語法

drop table #MyTmpData 
DECLARE 
    @PersoanaCurenta nvarchar(100), 
    @PersoanaAnterioara nvarchar(100), 
    @Cunostinte nvarchar(50), 
    @CunostinteTotale nvarchar(max) , 
    @ok int 

select row_number() over (order by persoana) as RowID, a.* 
into #MyTmpData 
from ex..tpersoane a 
Declare @Step int 
Declare @count int 
set @count=(select count(RowId) from #MyTmpData) 
set @Step = 0 
set @ok=0 
set @PersoanaCurenta=null 
set @PersoanaAnterioara=null 
while (@count > @Step) 
BEGIN 
    SET @Step = @Step + 1 
    select @PersoanaCurenta=persoana , @Cunostinte = cunostinte 
    from #MyTmpData 
    where @Step=RowID 

if @PersoanaAnterioara is not null and @PersoanaAnterioara != @PersoanaCurenta 



end 

附近有語法錯誤@PersoanaCurenta「。

+1

'@PersoanaAnterioara!= @PersoanaCurenta'是有效的語法進行比較。 'IF'條件中缺少'Statement' –

回答

1

在最後一行的查詢中缺少BEGIN END塊。

您開始如果條件但沒有寫入它。

這就是爲什麼它給你錯誤

‘Incorrect syntax near '@PersoanaCurenta'. 
0

下面的查詢運行良好:

     DECLARE 
         @PersoanaCurenta nvarchar(100), 
         @PersoanaAnterioara nvarchar(100), 
         @Cunostinte nvarchar(50), 
         @CunostinteTotale nvarchar(max) , 
         @ok int 
        set @PersoanaCurenta=null 
        set @PersoanaAnterioara=null 
        if @PersoanaAnterioara is null and @PersoanaAnterioara != @PersoanaCurenta 
        SELECT 1 

        ELSE 
        SELECT 2 

所以,請重新檢查你的問題。只是試試這個,它會工作:

     drop table #MyTmpData 
         DECLARE 
          @PersoanaCurenta nvarchar(100), 
          @PersoanaAnterioara nvarchar(100), 
          @Cunostinte nvarchar(50), 
          @CunostinteTotale nvarchar(max) , 
          @ok int 

         select row_number() over (order by persoana) as RowID, a.* 
         into #MyTmpData 
         from ex..tpersoane a 
         Declare @Step int 
         Declare @count int 
         set @count=(select count(RowId) from #MyTmpData) 
         set @Step = 0 
         set @ok=0 
         set @PersoanaCurenta=null 
         set @PersoanaAnterioara=null 
         while (@count > @Step) 
         BEGIN 
          SET @Step = @Step + 1 
          select @PersoanaCurenta=persoana , @Cunostinte = cunostinte 
          from #MyTmpData 
          where @Step=RowID 

         if @PersoanaAnterioara is not null and @PersoanaAnterioara != @PersoanaCurenta 
         SELECT 1 
         ELSE 
         SELECT 2 
         end