我有一个包含超过50列的表,我试图选择所有这些列,除了一列,我想为它添加一个case语句,我试着做了
Select A.*,Case when COLUMN1 THEN end as XX from TABLE A,
但这会导致COLUMN1重复两次,在*结果和情况条件下,有没有办法从select *结果中排除这一列?或者我是否必须键入每个列名称并将case语句添加到该特定列?
非常感谢您的帮助。谢谢。
答案 0 :(得分:0)
正如评论所指出的,你不能轻易改变select *
语句中的一列。但是,如果您不想输入所有列名,您仍然可以使用简单的查询来为您抓取它们。
select listagg(column_name, ', ') within group (order by column_id)
from user_tab_cols where table_name = 'MY_TABLE';
某些IDE也会进行列名扩展 - 例如,在SQL Developer中,您可以将表拖到工作表中以列出所有列。