webForumDet fria alternativet

where case

4 svar · 215 visningar · startad av doggelito

doggelitoMedlem sedan juni 20003 100 inlägg
#1

åhh, har fastnat och kommer inte loss!
hur skriver man en case i en where-tagg?

WHERE
    coalesce(@Categoryid, CategoryIDno) = CategoryIDno And
    coalesce(@Active, Active) = Active And
Case
@Search 
When <>'' Then Projectname Like '%' + @Search + '%' 
End
LarsGMedlem sedan dec. 200012 465 inlägg
#2

det behövs väl ingen case i detta fall

WHERE
    coalesce(@Categoryid, CategoryIDno) = CategoryIDno And
    coalesce(@Active, Active) = Active And
Projectname Like '%' + @Search + '%'

Om @search kan vara null så får du lägga på en coalesce.

doggelitoMedlem sedan juni 20003 100 inlägg
#3

LarsG skrev:

det behövs väl ingen case i detta fall

Nepp, mycke riktigt! :bire

WHERE
    coalesce(@Categoryid, p.CategoryIDno) = p.CategoryIDno And
    coalesce(@Active, p.Active) = p.Active and
    Projectname  Like  coalesce('%' + @Search + '%', null)
LarsGMedlem sedan dec. 200012 465 inlägg
#4

Jag förstår inte nyttan av din sista colaesce. om @search är null så blir

'%' + @Search + '%'

också null.

doggelitoMedlem sedan juni 20003 100 inlägg
#5

LarsG skrev:

Jag förstår inte nyttan av din sista colaesce.

Inte jag heller! Lite trög idag, måste vara för att det är måndag eller nått!

Genererad på 591 ms · cache AV · v20260730165559-full.f96bc7eb