Динамическая переменная в MSSQL
CREATE TABLE TestTable
(id nvarchar(255), reestrdate date, bank nvarchar(255), phone nvarchar(255))
INSERT INTO TestTable VALUES
('0234H6567', '2021-08-17', 'АБВГД', '89998887777'),
('023YTY555', '2021-08-18', 'ЕЕЖЗИ', '88887776543'),
('665748YT3', '2021-08-19', 'КЛМНО', '89996667654'),
('3452OUY54', '2021-08-20', 'КЕУНГ', '89993451177')
Есть шаблон сообщений вида:
DECLARE @message1 varchar(100) = 'Уважаемый клиент! Свяжитесь с {bank} {phone}'
DECLARE @message2 varchar(100) = 'Уважаемый! Быстро свяжитесь с {bank} {phone}'
Дальше выполняется запрос:
SELECT *
, CASE
WHEN ReestrDate = '2021-08-17' THEN @message1
WHEN ReestrDate = '2021-08-18' THEN @message2
ELSE NULL
END AS TextMsg
FROM TestTable
И я пол дня сижу и не могу понять, как мне поместить внутрь message1 и message2 правильное название банка и правильный номер телефона, который соответствует этой строчке.
Читал про динамические запросы, но так и не понял, как их здесь применить. В запросе я, допустим, могу получить все уникальные названия банков и номеров телефонов. Даже с id. Или даже не в запросе, а во временной таблице. Но я не знаю как их подвязать к переменной.
Заранее премного благодарен за помощь!
Ответы (1 шт):
Автор решения: Виталий Злобин
→ Ссылка
DECLARE @message1 varchar(100) = 'Уважаемый клиент! Свяжитесь с {bank} {phone}'
SELECT REPLACE(REPLACE(@message1, '{bank}', 'Sovcombank'), '{phone}', '88001000006')