Syntax Frage
Hallo kann mir einer sagen was im folgenden SQL code 1=2 bedeutet??
INSERT INTO #gruppen SELECT '25 Jahre und jünger', 00, 25 FROM system.iota;
INSERT INTO #gruppen SELECT '26 - 30 Jahre', 26, 30 FROM system.iota;
INSERT INTO #gruppen SELECT '31 - 35 Jahre', 31, 35 FROM system.iota;
INSERT INTO #gruppen SELECT '36 - 45 Jahre', 36, 45 FROM system.iota;
INSERT INTO #gruppen SELECT '46 - 55 Jahre', 46, 55 FROM system.iota;
INSERT INTO #gruppen SELECT '56 - 65 Jahre', 56, 65 FROM system.iota;
INSERT INTO #gruppen SELECT '65 Jahre und älter', 65, 100 FROM system.iota;
select * from #gruppen
where gruppe = '25 Jahre und jünger' OR 1 = 2;
Danke
MCCLane
INSERT INTO #gruppen SELECT '25 Jahre und jünger', 00, 25 FROM system.iota;
INSERT INTO #gruppen SELECT '26 - 30 Jahre', 26, 30 FROM system.iota;
INSERT INTO #gruppen SELECT '31 - 35 Jahre', 31, 35 FROM system.iota;
INSERT INTO #gruppen SELECT '36 - 45 Jahre', 36, 45 FROM system.iota;
INSERT INTO #gruppen SELECT '46 - 55 Jahre', 46, 55 FROM system.iota;
INSERT INTO #gruppen SELECT '56 - 65 Jahre', 56, 65 FROM system.iota;
INSERT INTO #gruppen SELECT '65 Jahre und älter', 65, 100 FROM system.iota;
select * from #gruppen
where gruppe = '25 Jahre und jünger' OR 1 = 2;
Danke
MCCLane
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 65697
Url: https://administrator.de/contentid/65697
Ausgedruckt am: 22.11.2024 um 08:11 Uhr
9 Kommentare
Neuester Kommentar
Interessant wäre es alle Attribute der Tabelle system.iota zu kennen. Wenn es dort ein Attribut mit dem Namen 1 gibt dann wird auch alles selectiert was den Wert 2 hat. Andersrum kann es sein das evtl irgendwo im statement noch ein UNION sitzt und je nachdem dieser mit eingebunden werden soll.
Gruß
Sven
Gruß
Sven
also wenn ich das statement richtig deute wird da eine temporäre tabelle erzeugt.
der space(20) macht leerzeichen vor der gruppe und nun wohl der clou in der where klausel. mit 1=2
werden die 26-30Jahre gruppe auch noch mit selectiert.
ich kenne die funktionalität der space() funktion nicht genau aber das würde diese klausel erklären.
bekommst du denn diese beiden gruppen selektiert wenn du das select * machst?
nachtrag
allerding fehlt mir da noch ein substring() ist das das ganze statement was dir zur verfügung steht?
der space(20) macht leerzeichen vor der gruppe und nun wohl der clou in der where klausel. mit 1=2
werden die 26-30Jahre gruppe auch noch mit selectiert.
ich kenne die funktionalität der space() funktion nicht genau aber das würde diese klausel erklären.
bekommst du denn diese beiden gruppen selektiert wenn du das select * machst?
nachtrag
allerding fehlt mir da noch ein substring() ist das das ganze statement was dir zur verfügung steht?
dieses 1= ist das merkwürdige an der ganzen sachen. Ist da ein index drauf oder eine identity Spalte die dementsprechend gefüllt ist?
wenn die zweite bedingung erfüllt ist also 1=1 dann ist klar das der erste teil nicht mehr greift da die where bedingung or verknüpft ist. heißt alle anderen datensätze haben die bedingung das 1 = 1 ist.
wenn die zweite bedingung erfüllt ist also 1=1 dann ist klar das der erste teil nicht mehr greift da die where bedingung or verknüpft ist. heißt alle anderen datensätze haben die bedingung das 1 = 1 ist.
Ja. Ist es. Ich bin von einer MS-SQL DB ausgegangen.
Schaust du am besten in die Doku von deiner DB nach oder hier http://devzone.advantagedatabase.com/dz/content.aspx?Key=1
oder hier
http://devzone.advantagedatabase.com/dz/content.aspx?key=3
da findest du eine sehr gute Doku dazu
Schaust du am besten in die Doku von deiner DB nach oder hier http://devzone.advantagedatabase.com/dz/content.aspx?Key=1
oder hier
http://devzone.advantagedatabase.com/dz/content.aspx?key=3
da findest du eine sehr gute Doku dazu