2016-10-19 3 views
0

In meiner Datenbank-Tabelle viele Spalten eine Spalte in Auswahlabfrage auszuschließen 'X_' prefix verwenden, trotzdem kann ich alle diese Spalten nicht sehen 'X_' als Präfix haben.Wie unter Verwendung von Präfix oder Suffix-Strings in SQL

Hinweis: Ich weiß, wenn wir einzelne erforderlichen Spaltennamen in SELECT Abfrage definieren, dann können wir Ergebnismenge mit bestimmten Spalte Namen erreichen. Aber, ich bin faul Kerl. :)

Also, ich brauche SELECT Abfrage, die diese Spalten alle mit 'X_' als Präfix ausschließt.

Beispiel:

------------------------------------------------------------- 
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 

Aber ich brauche wie unter Verwendung von ‚X_‘ als Präfix gesetzt Ergebnis, das Präfix mit Spalten auszuschließen. !

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

Vielen Dank im Voraus :)

+1

Welche DMBS? Sie tagged viele – Aleksej

+1

Welche RDBMS verwenden Sie? Sie setzen mehrere Tags. Die Lösung, über die ich nachdenke, ist die Abfrage basierend auf dem Oracle-Wörterbuch, aber dies funktioniert nur für Oracle. Bitte definieren Sie, welche Datenbank Sie verwenden. – Kacper

+0

@Kacper, ich bevorzuge Orakel. Aber jedes rdbms habe ich kein Problem. – developerbhuwan

Antwort

1

Ich bin mir nicht sicher, ob ich das richtig verstehen, aber so etwas wie das helfen soll:

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'; 

Vielleicht müssen Sie where column_name like 'X!_%' escape '!' oder einen anderen Filter hinzufügen für cols brauchen Sie in wählen

+0

Ok, ich werde überprüfen. – developerbhuwan

Verwandte Themen