我想知道是否可以在 psql 的 SQL 语句中的其他字符中间使用变量。
例如:
psql -v x=apple -f "example.sql"
example.sql 为:
SELECT * FROM :x;
工作正常。它被执行为:
SELECT * FROM apple;
但是我该如何处理 example.sql 是这样的情况:
SELECT * FROM red_:x_pie;
我希望 psql 将其读取为“red_apple_pie”,但我却在“:”上收到语法错误。
谢谢。
最佳答案
你必须使用字符串连接:
DECLARE
x TEXT;
BEGIN
x = 'apple';
SELECT *
FROM "Food"
WHERE "Name" = 'red_' || x || '_pie';
我使用这个例子是因为它更容易理解(表名必须用引号引起来)。
关于sql - 如何在其他字符中间使用 psql 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17817796/