SujataJK Ответов: 1

Как использовать оператор case в SQL server 2008


Хии,
Это мое кодирование чего я хочу
когда @var='Pending', то поле равно нулю
когда @var='Lotwise', то field=поле
когда @var='Cancelled' , то Canflag(другое поле)=1

Пожалуйста, дайте мне решение для этого.

Что я уже пробовал:

Вот что я сделал
Declare @status varchar(10);
set @status='Pending'
select EntryNo,entryDt,EntryLMBY,convert(date,EntryLMDT,106)EntryLMDT,LOtNo_Site2HO,Cancelflag  from dbo.tbl_Activity
where
CASE @status 
WHEN 'Pending' THEN LOtNo_Site2HO IS NULL
WHEN 'LotWise' THEN LOtNo_Site2HO=LOtNo_Site2HO
WHEN 'Canceld' THEN CANCELFLAG=1
end

1 Ответов

Рейтинг:
5

Karthik_Mahalingam

вы должны попробовать это

Declare @status varchar(10);
set @status='pending'

declare @query varchar(500)
declare @where varchar(100)
set @query  = 'select EntryNo,entryDt,EntryLMBY,convert(date,EntryLMDT,106)EntryLMDT,LOtNo_Site2HO,Cancelflag  from dbo.tbl_Activity where '
select  @where =    case @status
				    when 'pending' then ' LOtNo_Site2HO IS NULL '
					WHEN 'LotWise' THEN ' LOtNo_Site2HO=LOtNo_Site2HO '
					WHEN 'Canceld' THEN ' CANCELFLAG=1 '
					 else ' 1=1 ' 
					end 

set @query = @query + @where 
print @query
--exec(@query)


SujataJK

- Спасибо, сэр.

Karthik_Mahalingam

добро пожаловать