webForumDet fria alternativet
Logga in / Bli medlem

where case

Databaser & SQL

4 svar · 215 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Trådstart#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
Medlem sedan dec. 200012 464 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.

Medlem sedan juni 20003 076 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)
Medlem sedan dec. 200012 464 inlägg
#4

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

'%' + @Search + '%'

också null.

Medlem sedan juni 20003 076 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!

254 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)