SQL 変数
SQL 変数を使用すると、セッション内で一時データを保存および管理でき、スクリプトをより動的で再利用しやすくできます。
変数コマンド
SHOW VARIABLES コマンドには、対応するテーブル関数 SHOW_VARIABLES もあり、より高度なフィルタリングやクエリのために、同じ情報を表形式で返します。
変数を使ったクエリ
文の中で変数を参照して、値を動的に置き換えたり、実行時にオブジェクト名を構築したりできます。
$ と getvariable() を使った変数へのアクセス
$ 記号または getvariable() 関数を使用して、変数の値をクエリに直接埋め込みます。
-- Set a variable to use as a filter value
SET VARIABLE threshold = 100;
-- Use the variable in a query with $
SELECT * FROM sales WHERE amount > $threshold;
-- Alternatively, use the getvariable() function
SELECT * FROM sales WHERE amount > getvariable('threshold');
IDENTIFIER を使ったオブジェクトへのアクセス
IDENTIFIER キーワードを使用すると、名前が変数に格納されているデータベースオブジェクトを参照でき、柔軟なクエリ構築が可能になります。(注: LakeSQL はまだ IDENTIFIER をサポートしていません。)
-- Create a table with sales data
CREATE TABLE sales_data (region TEXT, sales_amount INT, month TEXT) AS
SELECT 'North', 5000, 'January' UNION ALL
SELECT 'South', 3000, 'January';
select * from sales_data;
-- Set variables for the table name and column name
SET VARIABLE table_name = 'sales_data';
SET VARIABLE column_name = 'sales_amount';
-- Use IDENTIFIER to dynamically reference the table and column in the query
SELECT region, IDENTIFIER($column_name)
FROM IDENTIFIER($table_name)
WHERE IDENTIFIER($column_name) > 4000;