postgresql - 获取带有字符串变量的列

标签 postgresql

有没有办法根据变量中的文本获取特定列。

例如你有一个表有a,b,c

你想查询表d、e、f

c列存放的是e或f的字段名

SELECT a, b, CAST(c as ?) AS e_or_f FROM table1 JOIN table2

--

显然,您可以使用 if/else 或 case 运算符,但不必将其写出来就好了。

谢谢

最佳答案

在这种情况下,您真正​​想要的是使用 CASE,可能与 CTE 或内联 View 混合使用。例如:

SELECT CASE WHEN 'foo' = myvar THEN foo
            WHEN 'bar' = myvar THEN bar
            WHEN 'baz' = myvar THEN baz
  FROM foobarbaz 
  CROSS JOIN (SELECT ?::text AS myvar) v;

关于postgresql - 获取带有字符串变量的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6936300/

相关文章:

python - django.db.utils.OperationalError 无法连接到服务器

postgresql - pgAdmin 中的临时表

postgresql - Postgres pg_dump 版本不匹配...即使版本相同

json - 在 postgresql 更新触发器上测试数据类型

java - CallableStatement 抛出 org.postgresql.util.PSQLException 且日期参数未知

python - 如何使用 PostgreSQL 按路径过滤

mysql - 对 MySQL 和 PostgreSQL DB 进行逆向工程的应用程序?

postgresql - 如何在postgresql中跟踪sql查询

sql - PostgreSQL 返回与查询日期准确或最接近的日期

sql - rails : How to query for rows by subtracting column value from datetime column?