#sql #sql-server #tsql
#sql #sql-сервер #tsql
Вопрос:
У меня есть такой вопрос, как:
SELECT PLIR.ListItemID AS [value], Item.ActiveFlag, Item.ListItemCode FROM ListItem AS [Item] INNER JOIN ListItemRelationship AS [PLIR] ON Item.ListItemID = PLIR.ListItemID WHERE Item.ListCode = @ListCode AND Item.ListItemLongValue LIKE ISNULL('%' @mask '%', NULL) AND Item.ListItemID IN (SELECT ITEMS FROM dbo.Split(@id, '|'))
В последней строке мой @id
параметр может быть равен нулю. Как я могу проверить значение NULL для @id
параметра?
Комментарии:
1.
ISNULL('%' @mask '%', NULL)
не имеет абсолютно никакого смысла, чего он пытается достичь?
Ответ №1:
Используйте IS NULL
с OR
:
WHERE Item.ListCode = @ListCode AND Item.ListItemLongValue LIKE ISNULL('%' @mask '%', NULL) AND ( @id IS NULL OR Item.ListItemID IN (SELECT ITEMS FROM dbo.Split(@id, '|')) )