Я скомпилировал ваш запрос выше, как показано ниже:
declare @MyTable as table
( ID int identity primary key
, acIdent varchar(100)
, acSubject varchar(200)
, acCode varchar(100)
)
insert into @MyTable
( acIdent
, acSubject
, acCode )
values
( '200.2.013'
, ''
, 'F-202' ),
( '200.2.013'
, 'Minsk traktor works'
, 'F-202' )
declare @subj varchar(30)
set @subj = 'Minsk traktor works'
select
acIdent
, acSubject
, acCode
, case acSubject when @subj then @subj else '' end
from @MyTable where acIdent = '200.2.013'
and acSubject = (case when acSubject = @subj then @subj else '' end)
select
acIdent
, acSubject
, acCode
, case acSubject when @subj then @subj else '' end
from @MyTable where acIdent = '200.2.013'
and acSubject = @subj
Из 2 запросов вы заметите, что первый запрос всегда будет содержать 2 строки, поскольку ваш код содержит ошибки.
Второй запрос, который вы заметите, даст вам только одну запись.
Результаты будут выглядеть так:
Результаты