Как распечатать переменную, которая содержит еще две переменные, с помощью оператора select в sql - PullRequest
0 голосов
/ 09 мая 2020

Например, на основе идентификатора человека получите предложение:

Меня зовут (имя), и я живу в (стране)

Вот код, который я написал:

DECLARE @ID int, @name varchar(50),@country varchar(50)
SET @ID = 15
SET @name = 'SELECT name FROM table1 WHERE ID =' + CAST(@ID AS varchar(50))
SET @country = 'SELECT country FROM table2 WHERE ID =' + CAST(@ID as varchar(50))

Тогда я не знаю, что делать, чтобы заменить (имя) и (страну) в предложении

Меня зовут (имя), и я живу в ( страна)

Спасибо.

1 Ответ

0 голосов
/ 09 мая 2020

Вы можете использовать replace():

select replace(replace('My name is [name], and I live in the [country]',
                       '[name]', t1.name
                      ), '[country]', t2.country
              ) as sentence
from table1 t1 join
     table2 t2
     on t1.id = t2.id
where t1.id = @id;

Обратите внимание, что динамическое c SQL (т.е. размещение запроса в строке) для этого совсем не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...