Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SELECT mit create Table

Empfohlene Antworten

Veröffentlicht

Ich benötige eine SQL-Abfrage die eine Tabelle erzeugt. Das Problem dabei: Der Select greift auf zwei Tabellen zu, in denen ein Feld gleich heißt. Wenn ich also ein select * mache, bekomme ich den Fehler "ORA-00957: Doppelter Spaltenname".

Also habe ich angefangen nur einzelne Spalten zu definieren - aber wie ist da bei Oracle die Syntax?? Ich versuche es mit SCHEMA.TABELLE.SPALTE und bekomme "ORA-00904: Ungültiger Spaltenname".

Meine Abfrage sieht derzeit so aus:

--------

create table zwtab1 as

select distinct *

from SchemaA.Tab31 TAB1, SchemaB.Tab32 TAB2

where TAB1.NR = TAB2.NR

and TAB2.Status = 941;

--------

Any ideas??

Muchas gracias!

Das problem ist das du eine neue Tabelle anlegst und in der neuen Tabelle logischerweise 2 Spalten gleich heissen würden wenn das statement funktionieren würde....

also statt select *

select spalte1,spalte2,spalte3...... from tab1, tab2

where..

und dabie darauf achten das keine doppelten spalten vorhanden sind

wenn du den inhalt der gleichnamingen spalten brauchst kannst du je nachdem was du genau machen wilst ein sub-select machen

.... where (select spaltex from tab2);

Probier es mal mit:

create table zwtab1 as

select distinct TAB1.spaltenname1 neuername1

, TAB1.spaltenname2 neuername2

, ...

, TAB2.spaltenname neuername

from SchemaA.Tab31 TAB1, SchemaB.Tab32 TAB2

where TAB1.NR = TAB2.NR

and TAB2.Status = 941;

Ich bin mir nicht ganz sicher, aber bei einer Tabelle kannst du glaub ich auch mit * operieren:

create table zwtab1 as

select distinct TAB1.*

, TAB2.spaltenname1 neuername1

, TAB2.spaltenname2 neuername2

from SchemaA.Tab31 TAB1, SchemaB.Tab32 TAB2

where TAB1.NR = TAB2.NR

and TAB2.Status = 941;

Gruss, Alex

funktioniert beides :-)

create table t3 (wert1 varchar2(10), wert2 varchar2(10));

create table t4 (wert1 varchar2(10), wert3 varchar2(10));

insert into t3 values ('abc','def');

insert into t4 values ('ghi','jkl');

create table zwt as

select eins.wert1 as wert4,

eins.wert2,

zwei.wert1,

zwei.wert3

from t3 eins,t4 zwei;

Table created.

create table zwt as

select eins.wert1 as wert4,

eins.wert2,

zwei.*

from t3 eins,t4 zwei;

Table created.

select * from zwt;

WERT4 WERT2 WERT1 WERT3

---------- ---------- ---------- ----------

abc def ghi jkl

in einer tabelle vielleicht, was macht man denn wenn man eine history tabelle hat in der die Daten der Haupttabelle nach 12 Monaten online archiviert werden ? da heissen alle Spalten gleich......

Also man sollte das im prinzipiellen Design vermeiden weil es zu verwechslingen führen kann, aber gerade bei sachen wie Archivierung/Backup, History Tabellen und Replikation gibt es das logischerweise andauernd

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.