Я хочу сделать внутреннее соединение с временной таблицей, но только если другая переменная не является NULL? Например, у меня есть пользовательская таблица, и я передаю строку с идентификатором пользователя, разделенным точкой с запятой. Я прочитал это во временную таблицу и внутреннее соединение с пользовательской таблицей, но только если строка userid не равна null. В противном случае я хочу вернуть все пользовательские строки.внутреннее соединение по временной таблице, если оно не пусто
хранимая процедура имеет переменную, передаваемую в:
@UidList varchar(max),
это строка пользовательских идентификаторов, разделенных точкой с запятой. Это превратилось в временную таблицу
DECLARE @List TABLE (UserUid uniqueidentifier NOT NULL)
то другая функция преобразует принятый в строку в таблице
IF @UidList IS NOT NULL
INSERT INTO @List(UserUid)
SELECT ItemUid
FROM dbo.AFN_ConvertUidListToTable(@UidList)
Тогда я присоединюсь на столе пользователей
select * from users
...
inner join @List on users.userid = @List.UserUid`
но если передаваемая в строке @UidList имеет значение null, тогда я хочу сопоставить все строки в таблице users.
Вы можете поделиться своим кодом? –
* Строка кода говорит более 1000 слов *, или как эта фраза снова? –