declare @d varchar
set @d = 'No filter'
if (@d like 'No filter')
BEGIN
select 'matched'
end
else
begin
select 'not matched'
end
the result of above is always not matched can anybody tell me why and how can I use the like or '=' result in my stored procedure.
thanks
3 Réponses :
Vous devez déclarer d comme varchar (100) non seulement varchar, sinon cela devient simplement n devrait être: p> Aussi pas besoin d'utiliser comme avec cela, vous pouvez utiliser =. P> P>
Ajouter Imprimer @D ou Sélectionnez @D pour prouver cela à vous-même.
+1: correct - c'est une bonne habitude de définir toujours des attributs de type de données que d'assumer les valeurs par défaut.
Changer votre déclaration à
declare @d varchar(10)
set @d = 'No filter'
if (@d = 'No filter')
BEGIN
select 'matched'
end
else
begin
select 'not matched'
end
Je trouve comme l'opérateur très utile. P>
si (
@Pli_component = '' + @itemid + '' + 'BD'
Ou @pli_component = '' + @itemid + '' + 'BD / 1'
Ou @pli_component = '' + @itemid + '' + 'bd / 2'
Ou @pli_component = '' + @itemid + '' + 'BD / 3'
Ou @pli_component = '' + @itemid + '' + 'BD / 4'
Ou @pli_component = '' + @itemid + '' + 'BD / 5' P>
) p>
peut être remplacé p>
par une seule ligne qui est p>
@pli_component comme @itemid + 'BD' P>
acclamations p>