我如何比较变量@PersoanaAnterioara
和@PersoanaCurenta
?
' @ PersoanaCurenta' .--错误
附近的语法不正确
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'。
附近的语法不正确
答案 0 :(得分:1)
在最后一行的查询中缺少BEGIN END块。
你开始了如果条件但没有写入。
这就是为什么它会给你错误
‘Incorrect syntax near '@PersoanaCurenta'.
答案 1 :(得分: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