Можно ли написать переменную после SELECT? - PullRequest
0 голосов
/ 01 мая 2020

Необходимо написать процедуру, которая делает запрос, который, в свою очередь, должен выводить все объекты определенного столбца. Вот что я попробовал:

CREATE PROCEDURE AttributeRequest(n CHAR(200))
begin
  SELECT n FROM table;
end

Но эта переменная воспринимается как имя самого столбца и ничего не выходит. Подскажите, как сделать такой запрос по атрибуту объекта, пожалуйста

Я немного искал, прочитал ответы ниже, и мне удалось выполнить эту задачу следующим образом:

CREATE PROCEDURE AttributeRequest(n CHAR(200))
begin
    SET @t =CONCAT("SELECT ",n ," FROM table");
    PREPARE e FROM @t;
    EXECUTE e;
end

1 Ответ

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

вы должны будете использовать Dynami c sql для этого

CREATE PROCEDURE AttributeRequest(@n CHAR(200)) AS
begin
  declare @query varchar(1000);
  set @query = 'select ['+@n+'] FROM table;
  exec AttributeRequest @query
end

, тогда вы можете извинить,

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