如何通过在sql中使用前缀或后缀字符串来排除select查询中的某些列

时间:2016-10-19 09:04:00

标签: sql oracle

在我的数据库表中有很多列使用'X_' prefix,无论如何我都没有看到所有使用'X_'作为前缀的列使用SELECT查询。

  

注意:我知道是否在中定义了各个必需的列名   SELECT查询,然后我们可以用指定的列实现结果集   名。但是,我是个懒人。:)

因此,我需要SELECT查询,该查询排除了以'X_'作为前缀的所有列。

例如:

-------------------------------------------------------------
SN    |   NAME  |  X_STATUS  |  X_MODE  |  X_DATE  | ADDRESS
-------------------------------------------------------------
1       Ram         S1           M1                    A
2       Sita        S1           M1                    B
3       Gita        S2           M2                    C
4       Hari        S3           M3                    B

但我需要使用' X _'作为排除具有列的前缀的前缀。

--------------------------
SN    |   NAME  | ADDRESS
--------------------------
1       Ram         A
2       Sita        B
3       Gita        C
4       Hari        B

提前致谢!)

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解正确,但这样的事情会有所帮助:

select 'select ' || listagg(column_name || ' as X_' || column_name, ', ')  within group(order by COLUMN_ID) || ' 
from T1' from all_tab_columns 
where table_name = 'T1';

也许你需要在select

中为你需要的cols添加where column_name like 'X!_%' escape '!'或其他一些过滤器