SELECT ohne Spaltenname

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
bengoshi
User
Beiträge: 9
Registriert: Freitag 27. Januar 2017, 07:23

Morgen,

ich möchte aus einer sqlite3-Tabelle die n.-Spalte abfragen, also so in der Art SELECT * FROM mustertabelle WHERE spalte=3. Ich finde aber nur Möglichkeiten über den Spaltennamen. Klar kann man die alle erst einlesen, aber das erscheint mir zu aufwändig, wenn ich weiß, dass ich die dritte oder fünfte Spalte brauche.

Hat da jemand eine Idee?

Danke und beste Grüße

bengoshi
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Hallo,


da rate ich glatt zu einem SQL Tutorial.
Hier mal ein Link:
https://www.w3schools.com/SQL/sql_select.asp
bengoshi
User
Beiträge: 9
Registriert: Freitag 27. Januar 2017, 07:23

Danke, nicht das erste, dass ich bemühte. Irgendwie stehe ich das trotzdem auf dem Schlauch. Vielleicht konkreter - ich weiß nur, dass ich beispielsweise den Datenwert aus der dritten Zeile vierte Spalte haben möchte. Mit einem SELECT spalte_3 FROM tabelle fehlt mir die die Auswahl der Zeile; ein WHERE greift ja gerade bestimmte Werte ab, während ich die Koordinaten zu einem Wert habe.
lackschuh
User
Beiträge: 281
Registriert: Dienstag 8. Mai 2012, 13:40

http://www.sqlite.org/syntaxdiagrams.html#select-stmt

[codebox=mysql file=Unbenannt.sql]
SELECT spalte FROM tabelle
LIMIT 1 OFFSET 2
[/code]
BlackJack

@bengoshi: Es gibt keine n-te Zeile in relationalen SQL-Datenbanken. Die Reihenfolge der Datensätze ist nicht festgelegt. Wenn Du so etwas brauchst, dann musst Du eine Spalte haben in der eine Zeilennummer gespeichert wird, und nach der dann tatsächlich mit WHERE filtern. Wobei der Betreff ja gar nicht nach der Zeile, sondern nach der Spalte nach Spaltenummer fragt. Auch das klingt nach einem komischen Entwurf. Denn da würde man eher eine Tabelle haben deren Datensätze aus drei (+) Spalten bestehen, also mindestens x, y, und Wert. Dann kann man gezielt auf Zellen einer 2D-Struktur zugreifen. Beispiel:
[codebox=postgresql file=Unbenannt.sql]SELECT wert FROM tabelle WHERE x = 23 AND y = 42[/code]
bengoshi
User
Beiträge: 9
Registriert: Freitag 27. Januar 2017, 07:23

Vielen Dank, dass hat mir sehr geholfen!
Antworten