我在表中有一列包含另一个表的列名。 我希望自动化查找与所有列名对应的数据类型的过程。
如果是1列,我会使用:
SELECT DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'table' AND
COLUMN_NAME = 'column'
然而,有多个列。 例如,
Columns
---------
A
B
C
D
现在如何自动执行查找与每个列名对应的数据类型的过程?
聚苯乙烯。拥有这些列的表的名称是已知的。
答案 0 :(得分:1)
警告: WHERE
子句中字符串的大小写非常重要
SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'table' AND
COLUMN_NAME IN ('a', 'b', 'c' ,'d');
示例:
> select column_name, data_type from information_schema.columns where
table_name='posts' and column_name in ('id', 'creationdate');
column_name | data_type
--------------+-----------------------------
id | integer
creationdate | timestamp without time zone
(2 rows)