テーブルの列への参照として変数を使用しようとすると、ストアドプロシージャに構文エラーが発生します。テーブルの列を変数
BEGIN
SET @mycolumn = (SOME SELECT STATEMENT RETURNING MY COLUMN);
SELECT [email protected] FROM mytable as a;
END
質問:私の構文の何が問題になっているのですか?
テーブルの列への参照として変数を使用しようとすると、ストアドプロシージャに構文エラーが発生します。テーブルの列を変数
BEGIN
SET @mycolumn = (SOME SELECT STATEMENT RETURNING MY COLUMN);
SELECT [email protected] FROM mytable as a;
END
質問:私の構文の何が問題になっているのですか?
あなたは、動的SQLをやろうとしているように見えます。ここではそれを行うための一つの方法は次のとおりです。A`として
BEGIN
SET @mycolumn = (SOME SELECT STATEMENT RETURNING MY COLUMN);
DECLARE @sql varchar(20000);
SET @sql = CONCAT('SELECT a.', @mycolumn, ' FROM mytable as a';
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
私はこれが好きですが、単純な 'SELECT * FROM mytable'を使ってみましたが、構文エラー、エラーから失敗しました'DECLARE'行を与えるだけです –
MySQLを実行する' PREPARE'と 'EXECUTE'を使用しなければなりませんでした –
ヨルダン、
あなたは、このために、テーブル変数または動的SQLを使用する必要があります。
ここで私はテーブル変数でこれをどうしていますか。以下のクエリを実行して、
Declare @table as table (columnName dataType.
Insert into @table
SOME SELECT STATEMENT RETURNING YOUR COLUMN
結果: -
SELECT * FROM @table
そうです、私はそれをjoinで使用していて、 'table.col'構文が必要です –
Onesあなたはテーブル変数を持っていて、それをあなたの参加に使うことができます。 : - ; T.columnName = T2.Columnname –
削除 '3行目の終わりから、私は' JOIN'文でそれを使用する –
@vkpので、それは –
何をalias'dする必要があります構文エラーですか?恥ずかしがらないでください。 –