从更多多个表名中选择列名

时间:2017-05-10 19:09:38

标签: database postgresql-9.1

当我尝试

select column_name from information_schema.columns where table_name= ('TableA') 

它工作正常,但是当我尝试对同一个DB中的选定表执行相同操作时,它不起作用。

select column_name from information_schema.columns where table_name= ('tableA', 'TableB')

2 个答案:

答案 0 :(得分:0)

我认为您的查询应该是:select column_name from information_schema.columns where table_name = ('tableA') or table_name = ('TableB')select column_name from information_schema.columns where table_name in ('tableA','TableB')但不确定postgresql是否支持第二个。

答案 1 :(得分:0)

https://www.postgresql.org/docs/current/static/functions-comparisons.html

  

表达式IN(值[,...])表达式=值1或表达式=值2或...

的简写表示法

(强调我的)

所以你可以同时使用

where table_name = ('tableA') or table_name = ('TableB')

正如Gi1ber7所暗示的那样

where table_name in ('tableA','TableB')
  • 以上是相同的。

如果您想使用=运算符,请考虑使用ANY(ARRAY)

where table_name = ANY(ARRAY['tableA','TableB'])

甚至ANY(子查询):

where table_name = ANY(VALUES ('tableA'),('TableB'))