有没有办法根据变量中的文本获取特定列。
例如你有一个表有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/