MS SQL'de bir WHERE cümlesi içinde bir IF cümlesi kullanmak mümkün müdür?
Örnek:
WHERE
IF IsNumeric(@OrderNumber) = 1
OrderNumber = @OrderNumber
ELSE
OrderNumber LIKE '%' + @OrderNumber + '%'
CASE]1 deyimi kullanın GÜNCELLEME: Önceki sözdizimi (birkaç kişi tarafından belirtildiği gibi) çalışmıyor. CASE'i aşağıdaki gibi kullanabilirsiniz:
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber) = 1 THEN
@OrderNumber
ELSE
'%' + @OrderNumber
END
Ya da @N. J. Reed'in işaret ettiği gibi bir IF deyimi kullanabilirsiniz.
CASE deyimini istiyorsunuz
WHERE OrderNumber LIKE
CASE WHEN IsNumeric(@OrderNumber)=1 THEN @OrderNumber ELSE '%' + @OrderNumber END