Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Gleicher Alias für verschiedene Spalten, in gleicher Tabelle

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von iodata, 9 Juni 2021.

  1. iodata

    iodata Neuer Benutzer

    Hallo, ich habe eine Datenbank bzw. Excel die ich einlesen in SQL, hier eine vereinfachte Datendarstellung.

    Spalte Haus Teuer , Haus Billig
    Haus Teuer = Alias Haus, Haus Billig = Alias Haus

    Beiden Spalten will ich den gleichen Alias geben, um diese Werte dann unter dem Alias Haus, in zwei separaten spalten einer Tabelle zu haben?

    Aus dieser Tabelle möchte ich dann beide Spalten auslesen,
    suche spalte = haus nehme wert suche weitere spalte = haus nehme wert

    hat jemand eine idee?
    Danke!
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Bahnhof.
     
  3. dabadepdu

    dabadepdu Datenbank-Guru

    Du kannst in SQL keine Tabellen mit identischen Spaltennamen haben.
    Du kannst in einem Select Statement doppelte/ mehrdeutige Spaltennamen haben, wenn Du eine Abfrage aus mehreren Tabellen machst. Dieses Ergebnis kannst Du aber nicht weiterverarbeiten, wegen der mehrdeutigen Spaltennamen.
    Aliase, wie man sie in SQL Abfragen (nicht in Tabellen) angeben kann bzw. muss, wenn man z.B. mehrdeutige Spaltennamen loswerden muss, müssen ebenfalls eindeutig sein.

    Das Höchste der Gefühle in SQL sind Spaltennamen, die einen gemeinsamen, identischen Präfix besitzen.
     
    akretschmer gefällt das.
  4. iodata

    iodata Neuer Benutzer

    Ok, ich verstehe jde Spalte und auch Alias sollte eindeutig sein z.B. 1.Haus 2.Haus nun meine andere Frage dazu, kann ich nicht wenigsten eine Abfrage schreiben die dann nur nach Haus sucht und zunächst in der Spalte 1:haus sucht und dann in der Spalte 2.Haus und zwar ohne das ich 1. Haus bzw. 2.Haus angeben musste. Sozusagen eine suche auf basis des Spaltennames ohne die genau spalte zu benennen!
     
    Zuletzt bearbeitet: 10 Juni 2021
  5. akretschmer

    akretschmer Datenbank-Guru

    durchnummerierte Spalten wie "1.Haus" und "2.Haus" zeugen in der Regel von einem völlig falschen Tabellendesign. Abfragen auf alle Spalten, die "Haus" im Namen enthalten, gehen nicht - zumindest nicht mit statischem SQL.
    Wenn Du das willst, müßtest Du Dir das nötige Statement dynamisch zusammenbasteln, siehe hier: 42.5. Basic Statements , für M$SQL dürfte das ähnlich sein.
     
  6. dabadepdu

    dabadepdu Datenbank-Guru

    Du musst Deine 2 Spalten „1.Haus“, „2.Haus“ in „eine“ Spalte bekommen. Um die gewünschte Funktion zu erreichen brauchst Du die „1“ und die „2“ dann als separate Merkmalsspalte



    aus

    1.Haus | 2.Haus

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

    Blahaus | Blub Haus



    wird dann



    Merkmal | Haus

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

    erstes | Blahaus

    zweites | Blub Haus



    Dann kannst Du über die Where Bedingung das Merkmal wählen, was Du suchst. Deine beiden ursprünglichen Spalten sind also nicht mehr nebeneinander, sondern untereinander.
     
  7. iodata

    iodata Neuer Benutzer

    Hallo, danke! Ich denke beide ansätze helfen mir.
    Ich wünsche ein sonniges Wochenende.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden