Ali je v MS SQL mogoče uporabiti klavzulo IF znotraj klavzule WHERE?
Primer:
WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'
Uporabite izjavo CASE DOPOLNITEV: Prejšnja sintaksa (na katero je opozorilo nekaj ljudi) ne deluje. CASE lahko uporabite na naslednji način:
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber) = 1 THEN
@OrderNumber
ELSE
'%' + @OrderNumber
END
Lahko pa uporabite stavek IF, kot je poudaril @N. J. Reed.
Želite izjavo CASE
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber)=1 THEN @OrderNumber ELSE '%' + @OrderNumber END