我正在尝试在Oracle中选择一个表来编辑一列。这是我尝试的查询,但Oracle不喜欢它。
SELECT (
SELECT COLUMN_NAME
FROM USER_TAB_COLS
WHERE TABLE_NAME = 'LMNOP_USERS'
AND COLUMN_NAME != 'USER_SECRET' )
FROM LMNOP_USERS;
仅供参考,子查询确实返回列名列表。除了列出所有列之外,有没有办法编写此查询?
答案 0 :(得分:0)
您可以运行查询:
SELECT COLUMN_NAME||', '
FROM USER_TAB_COLS
WHERE TABLE_NAME = 'LMNOP_USERS'
AND COLUMN_NAME != 'USER_SECRET';
然后获取列列表并将其放在select
之后。记得删除最后一个逗号。这样可以节省打字。
如果您愿意,可以使用listagg()
将所有列放在一行。