declare @d varchar
set @d = 'No filter'
if (@d like 'No filter')
BEGIN
select 'matched'
end
else
begin
select 'not matched'
end
результат вышеупомянутого всегда не подбирается, кто-либо может сказать мне, почему и как я могу использовать подобное или '=' результат в моей хранимой процедуре.спасибо
Измените свое объявление на
declare @d varchar(10)
Тогда
declare @d varchar(10)
set @d = 'No filter'
if (@d LIKE 'No filter')
BEGIN
select 'matched'
end
else
begin
select 'not matched'
end
будет работать.
Помните, что LIKE используется для сопоставления с образцом,
что-то вроде
DECLARE @Val VARCHAR(10)
SET @Val = 'foo bar'
if (@Val LIKE '%foo%')
BEGIN
select 'matched'
end
else
begin
select 'not matched'
end
Поэтому в вашем случае вы можете изменить код на
declare @d varchar(10)
set @d = 'No filter'
if (@d = 'No filter')
BEGIN
select 'matched'
end
else
begin
select 'not matched'
end
с помощью знака «=»
Вам нужно объявить d как varchar (100), а не просто varchar, иначе он просто станет N
declare @d varchar
set @d = 'No filter'
Должно быть:
declare @d varchar(100)
set @d = 'No filter'
Также нет необходимости использовать LIKE, вы можете использовать =.