SQL: Ich habe 100 Zeilen wenn in Spalte 3 ein "1" steht soll eine extra Spalte erstellt werden und dort eingefügt werden?

3 Antworten

Hallo!

Wie mein Vorredner schon sagte, ist dies so nicht möglich.
Die Struktur der Tabelle sollte im Vorfeld klar sein und nicht zur Laufzeit veränderbar sein, da hieraus mögliche Inkonsistenzen resultieren würden.
Vielmehr würde deine Tabelle dann ja auch so aussehen, dass für x-Datensätze eine "extra Spalte" existiert und für "y-Datensätze" keine.
Dies geht also nicht!

Je nachdem welche Verwendung deine "extra Spalte" hat, würde sich z.B. die Möglichkeit bieten, bereits im Vorfeld eine Spalte mit boolschen Werten zu erstellen, die per Default auf "false" stehen. Dessen Spaltenwert könnte zur Laufzeit dann, im Falle des Wertes "1" in der Spalte 3 auf "true" gesetzt werden. Hierzu wäre eine Überprüfung und die resultierende Aktion nach dem Einfügen deines Datensatzes notwendig.
Aber auch hier würdest du eine Redundanz erzeugen, da du innerhalb der Laufzeit des Programms den Wert der Spalte 3 überprüfen könntest.

Wie bereits gesagt, kommt es sehr auf den Verwendungszweck deiner "extra Spalte" an. Primär halte ich diese, ohne deinen Aufbau zu kennen, jedoch erst mal für überflüssig!

So, auch wenn es jetzt nicht großartig produktiv ist, hoffe ich dir mit dem gesagten helfen zu können!

MfG
Norman Fober

Unmöglich ist es aber noch lange nicht. Mit nem kurze PL/SQL script könnte man sowas ohne Probleme lösen :)

0
@Berny96

Hallo Berny!
Ja, möglicher Weise (bin mir nicht sicher ob so ein Unfug funktioniert) könnte man eine "dynamische Tabelle", wenn man es so nennen kann, per Script erzeugen.
Allerdings ist dies bestimmt nicht im Sinne einer relationalen Datenbank, da die Struktur Regel verletzt wäre.
Zumal die Iteration über die "extra" Spalte im Falle der Nicht-Existenz zu einem Fehler führen würde. Wohingegen die Iteration über die boolsche Spalte einfach nur "true" oder "false" als Rückgabewert hätte.

Explizit bleibe ich bei dem Standpunkt, dass dieser "dynamische Ansatz" so nicht haltbar und implementierbar ist und sei es nur aus Gründen von Folgefehlern.

2
@Noha1981

Haha ja ne also ich nehme die Frage nicht als solches ernst im Sinne von dass es einer echtwelt Anwendung gestellt ist. Ich denke der Fragesteller hat Sie entweder als Aufgabe von einem Lehrer bekommen (und dabei vielleicht spalte mit zeile verwechselt oder so) oder experimentiert bloß ein bisschen rum und möchte dazu lernen. In beiden Fällen hast du ihn gut informiert und den Sinn relationeller Datenbanken näher gebracht! 

1

Wenn es sich um eine Spalte handelt, bei der es nur darum geht, ob sie vorhanden ist oder nicht, kannst Du diese Spalte generell vorsehen und mit null belegen. Dann ist die Spalte formal vorhanden, aber ohne Inhalt. Diese Spalte kannst dann nachträglich bei Bedarf mit einem Wert belegen:

Füge erstmalig in Deine Tabelle die Spalte spalte0 mit dem Wert null hinzu.

UPDATE tabelle SET spalte0 = 'wert' WHEN spalte3 = 1


Das ist eine SQL-Vergewaltigung.

kurz und knackig auf den punkt gebracht. #vote4hilfreichsteantwort

1

SQL- Durchschnitt berechnen?

Sitze gerade an einem PHP Projekt und möchte in SQL den Durchschnitt mehrerer Werte in einer Spalte berechnen. Wie ginge dies? Schon mal Vielen Dank 😄

...zur Frage

ganze Spalte von Excel nach SAP kopieren

Hallo zusammen,

gibt es eine Möglichkeit eine komplette Excel Spalte in SAP einzufügen. Bei SAP kann ich maximal 16 Zeilen per Copy und Paste einfügen. Gibt es ein Tool, oder einen Trick um eine komplette Spalte mit beispielsweise 100 Zeilen oder mehr direkt in einem Schritt zu kopieren? Vielleicht hat jemand dasselbe Problem und eine Lösung parat

...zur Frage

Excel Formeln, Spalte, Zeile, HILFE

Hallo, und zwar benötige ich eine Excel Tabelle wo in Spalte A der "Kaufpreis" (100), in Spalte B der "Verkaufspreis" (200), in Spalte C "Gebühren" (5%) vom "Verkaufspreis" (B) und in Spalte D der Gewinn von Spalte A und B nach Abzug der Gebühren (Spalte C) errechnet wird. In diesem Beispiel also: A1=100 | B1=200 | C1=10 | D1=90

Nun das Problem, die Zeilen der jeweiligen Spalten sollen unabhängig von einander sein, z.B. Zeile1 soll nichts mit Zeile2 zutun haben. Nun bin ich auf der Suche nach den richtigen Rechenbefehlen, für die Prozent Spalte habe ich "=Summe(B1*5%)" jedoch gibt es doch bestimmt eine Möglichkeit dies für die komplette Palte und nicht nur für eine Zeile zu schreiben. Also sprich Spalte A und Spalte B werden eingetragen und Spalte C und D sollen ermittelt werden.

...zur Frage

Wie begrenze ich eine Tabelle in Word nach unten, sodass sie nicht über diesen Punkt hinaus geht und das Geschriebene in die nächste Spalte kommt?

Hey,

ich habe in Wort eine zweispaltige Tabelle erstellt. Was ich erreichen möchte, ist, dass die Tabelle nicht automatisch größer wird, wenn ich noch etwas einfüge, sondern, dass das Geschriebe, sobald diese Begrenzung überschritten wird, in die nächste Spalte eingefügt wird.

Um sich das besser vorstellen zu können: Ich habe eine Rangliste meiner Lieblingsanime erstellt und die ersten 30 sollen auf der linken Seite stehen und sobald ich dann einen weiteren Anime einfüge, soll er automatisch rechts platziert werden - bzw. stehen auch rechts schon Anime, aber da ich auch neue schaue und diese einsortiere, sollen die überflüssig gewordenen Anime der Spalte eben in die rechte Spalte rutschen.

Ist irgendwie schwer zu erklären :/

Ich hoffe, dass ihr mir helfen könnte und vielen Dank im Voraus, LG Lilli

...zur Frage

mit csharp zahl in microsoft access datenbank aufaddieren?

Immer wenn ich enter drücke wird 100 einem vorhandenem Wert in der Datenbank hinzugefügt. Ich habe bereits den sql Update Set Befehl und benötige nun eine Funktion für das Drücken der Enter Taste, die eine Variable zurückgibt, welche ich dann in den sql Befehl anfügen kann.

...zur Frage

Einen Datensatz aus SQL-Datenbank der über Auswahlliste selektiert wird in Tabelle Zeilen ausgeben

Hallo Freunde,

ich soll ein Formular erstellen, in der man sich über Auswahllisten einen/mehrere Artikel aussucht. Dies geschieht in einer Tabelle mit 3 Spalten.

  1. Spalte (Auswahlliste) ist die Artikelnummer (aus Datenbank)

  2. Spalte ist die genaue Bezeichnung des Artikels (aus Datenbank)

  3. Spalte ist der Preis (aus Datenbank)

In der Datenbank hat jeder Datensatz eine Artikelnummer eine Bezeichnung und einen Preis.

Mein Problem ist nun, wenn ich in der Auswahlliste (1. Spalte) eine Artikelnummer auswähle, bringe ich es nicht hin die dazugehörige Bezeichnung und Preis in der jeweilige Tabellen Zeile auszugeben...

Mein Code: (bisher)

<tr>
  <td width="5%"><input name="stk_01" type="text" size="2" maxlength="2"></td>
  <td width="20%"><? include ("01.php"); ?></td>
  <td width="45%"><?  ?></td>
  <td width="10%"><?  ?></td>
  <td width="10%">&nbsp;</td>
</tr>

Include: 01.php

<? $sql = "SELECT Artikelnummer, Bezeichnung, VK1 FROM artikel";

$result = mysql_query($sql) or die(mysql_error());

echo "";

echo "Bitte auswählen";

  while ($row=mysql_fetch_row($result))                               
          {                                                           
           echo "<option value='$row[0]'>".$row[0]."</option>";       
          }                                                           

echo "";

?>

...zur Frage

Was möchtest Du wissen?