选择* with Case语句

时间:2018-04-10 17:37:37

标签: sql oracle

我有一个包含超过50列的表,我试图选择所有这些列,除了一列,我想为它添加一个case语句,我试着做了

Select A.*,Case when COLUMN1 THEN end as XX from TABLE A,

但这会导致COLUMN1重复两次,在*结果和情况条件下,有没有办法从select *结果中排除这一列?或者我是否必须键入每个列名称并将case语句添加到该特定列?

非常感谢您的帮助。谢谢。

1 个答案:

答案 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中,您可以将表拖到工作表中以列出所有列。