达梦数据库查出指定表的所有列名
如下 SQL 查出表的所有列名:
SELECT
COLUMN_NAME
FROM
ALL_TAB_COLUMNS
WHERE
TABLE_NAME = 'YOUR_TABLE_NAME' -- 替换为你的表名
AND OWNER = 'YOUR_SCHEMA_NAME'; -- 替换为你的模式名(如未指定则删除此行)
如下 SQL 将列名用逗号分隔:
SELECT
LISTAGG(COLUMN_NAME, ', ') WITHIN GROUP (ORDER BY COLUMN_ID) AS COLUMNS
FROM
ALL_TAB_COLUMNS
WHERE
TABLE_NAME = 'YOUR_TABLE_NAME' -- 替换为你的表名
AND OWNER = 'YOUR_SCHEMA_NAME'; -- 替换为你的模式名(如未指定则删除此行)
如下 SQL 将列名用逗号分隔,并在列前面添加前缀(这里为a.):
SELECT
LISTAGG('a.' || COLUMN_NAME, ', ') WITHIN GROUP (ORDER BY COLUMN_ID) AS COLUMNS
FROM
ALL_TAB_COLUMNS
WHERE
TABLE_NAME = 'YOUR_TABLE_NAME' -- 替换为你的表名
AND OWNER = 'YOUR_SCHEMA_NAME'; -- 替换为你的模式名(如未指定则删除此行)
其中函数 LISTAGG 是达梦数据库支持的字符串聚合函数,用于将多行数据合并为一行:
- 语法:
LISTAGG(字段名,'分隔符') WITHIN GROUP (ORDER BY 排序字段); - 类似其他数据库的
GROUP_CONCAT(MySQL)或STRING_AGG(SQL Server)。
参考:DeepSeek
浙公网安备 33010602011771号