Благодаря помощи многих из вас, ребята, я получил следующий код, который прекрасно работает. Однако я понял, что пропустил важную часть информации вне вопроса и поэтому разместил здесь (с обновленным кодом), чтобы уточнить.
Следующий код получает 5 случайных записей из таблицы плюс еще одну запись на основе избранного пользователя, как указано во второй таблице:
CREATE PROCEDURE web.getRandomCharities
(
@tmp_ID bigint --members ID
)
AS
BEGIN
WITH q AS
(
SELECT TOP 5 *
FROM TBL_CHARITIES
WHERE cha_Active = 'TRUE'
AND cha_Key != '1'
ORDER BY NEWID()
)
SELECT *
FROM q
UNION ALL
SELECT TOP 1 *
FROM (
SELECT *
FROM TBL_CHARITIES
WHERE TBL_CHARITIES.cha_Key IN
(
SELECT members_Favourite
FROM TBL_MEMBERS
WHERE members_Id = @tmp_ID
)
EXCEPT
SELECT *
FROM q
) tc
END
Однако я понял, что мне также нужно включить запись, где "cha_Key == '1'", если она не совпадает с записью, возвращенной во втором операторе SELECT в коде, показанном выше.
Надеюсь, что имеет смысл?
СПАСИБО !!!