Je možné v MS SQL použiť klauzulu IF v rámci klauzuly WHERE?
Príklad:
WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'
Použite príkaz CASE DOPLNENIE: Predchádzajúca syntax (na ktorú upozornilo niekoľko ľudí) nefunguje. Príkaz CASE môžete použiť takto:
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber) = 1 THEN
@OrderNumber
ELSE
'%' + @OrderNumber
END
Alebo môžete použiť príkaz IF, ako uvádza @N. J. Reed.
Chcete, aby príkaz CASE
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber)=1 THEN @OrderNumber ELSE '%' + @OrderNumber END