如何在SQL中获取数据表的列名,得到Student_id等指定字段结果
SQL获取数据表列名的实现方法
假设你需要查询的表名为students,不同数据库环境的实现方案如下:
1. 获取逗号拼接的列名字符串(符合你期望的Student_id,Name,Address,Marks输出格式)
- MySQL
SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ',') AS column_list FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '你的实际数据库名称' AND TABLE_NAME = '你的实际表名称';
- PostgreSQL
SELECT string_agg(column_name, ',') AS column_list FROM information_schema.columns WHERE table_schema = 'public' AND table_name = '你的实际表名称';
- SQL Server
SELECT STRING_AGG(COLUMN_NAME, ',') AS column_list FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '你的实际表名称';
- Oracle
SELECT LISTAGG(COLUMN_NAME, ',') WITHIN GROUP (ORDER BY COLUMN_ID) AS column_list FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '你的实际表名称';
2. 逐行展示所有列名
如果不需要拼接为逗号分隔的字符串,仅需要逐行返回每个列名,直接去掉对应语句中的聚合函数即可,以MySQL为例:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '你的实际数据库名称' AND TABLE_NAME = '你的实际表名称';
注意:执行语句时请将占位符
你的实际数据库名称、你的实际表名称替换为你真实业务中的库名和表名,Oracle环境中表名需要大写。
内容的提问来源于stack exchange,提问作者Omar Chakroun
相关产品推荐
相关产品推荐

