SELECT查询遗漏了Oracle中的一列

时间:2013-12-18 22:38:31

标签: sql oracle

我正在尝试在Oracle中选择一个表来编辑一列。这是我尝试的查询,但Oracle不喜欢它。

SELECT (
    SELECT COLUMN_NAME
    FROM USER_TAB_COLS
    WHERE TABLE_NAME = 'LMNOP_USERS'
        AND COLUMN_NAME != 'USER_SECRET' )
FROM LMNOP_USERS;

仅供参考,子查询确实返回列名列表。除了列出所有列之外,有没有办法编写此查询?

1 个答案:

答案 0 :(得分:0)

您可以运行查询:

SELECT COLUMN_NAME||', '
FROM USER_TAB_COLS
WHERE TABLE_NAME = 'LMNOP_USERS'
    AND COLUMN_NAME != 'USER_SECRET';

然后获取列列表并将其放在select之后。记得删除最后一个逗号。这样可以节省打字。

如果您愿意,可以使用listagg()将所有列放在一行。