sql - 如何在其他字符中间使用 psql 变量?

标签 sql postgresql psql

我想知道是否可以在 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/

相关文章:

python - Django ConnectionAbortedError : [WinError 10053] An established connection was aborted by the software in your host machine

sql - 如何使用相同的 WHERE 子句高效地执行多个 SQL 查询

SQL:将个人的不同诊断放入水平行中

sql - 这是维护 mysql 表更改的日志/审计表的合理方法吗?

ruby-on-rails - Rails postgres hstore : query for a specific key with any of the given values

psql - 在 PSQL 中查找表名

sql - 使用Oracle中同一行中的值更新列

PostgreSQL - 让两个事务同时运行

psql - 我如何知道运行的查询的 query_group?

postgresql - AMPL 的相关系数