2016-07-26 6 views
-2

Я фильтрую записи в SQL с помощью GUID, если Guid пусто, а затем пропустите фильтр, но если он имеет некоторое значение, выберите запись на основе фильтров.Проверка правильности в SQL

Я использую

WHERE USERID = IIF(@FILTERUSER IS NULL, AD.USERID, @FILTERUSER) 

UserId и FILTERUSER имеют тип uniqueidentifier.

Но это не работает. Незлая помощь.

+1

Какой РСУБД это? Добавьте тег, чтобы указать, используете ли вы 'mysql',' postgresql', 'sql-server',' oracle' или 'db2' - или что-то еще. –

ответ

1

Я решил проблему, используя CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER) вместо NULL.

Так рабочий код:

WHERE USERID = IIF(@FILTERUSER = CAST(CAST(0 AS BINARY) AS UNIQUEIDENTIFIER, AD.USERID, @FILTERUSER) 
Смежные вопросы