« Wenn dem jemand Zeit hat .... | Main| Es ist nicht einfach.... manchmal »

SQL INNER JOIN, LEFT JOIN und SET ANSI_NULL OFF

0
Kategorie  
Mhhh, also wie soll ich anfangen.... Am Besten nehmt Ihr Euch eine SQLExpress Edition 2005 und legt folgende Tabelle an.

CREATETABLE [dbo].[T_ID](
        [ID] [int] NULL
)ON [PRIMARY]

Dann folgendes Statement ausführen ->
insertinto t_id (id) values(null)

Dann macht einfach mal folgendes select ->
select* from t_id where id =null

Super, nix wird selektiert, haben wir auch nicht anders erwartet

Und das soll spannend sein??? .....
Dann machen wir die folgenden selects ->
select* from t_id t1 inner join t_id t2 on t1.id = t2.id
select* from t_id t1 left join t_id t2 on t1.id = t2.id
select* from t_id t1 left join t_id t2 on t1.id = t2.id where t1.id = t2.id
select* from t_id t1, t_id t2 where t1.id = t2.id
select* from t_id t1 where t1.id in (select id from t_id)

Bis auf das Zweite liefert keines ein Ergebnis, soweit so gut .....
und jetzt beginnt die Party
Wir machen, rischtisch! -> set ansi_nullsoff
jetzt bitte ->
select* from t_id where id =null
und richtig, es wird einen Zeile zurückgegeben.
Nun führen die 5 Statements noch einmal aus .... von der Theorie her könnten alle ein Ergebnis liefern

Aber zu meiner Überraschung nur 2 und 5!

Gruß JJR
P.S.: Woher kommt das? Any ideas?


Kommentare

Gravatar Image1 - Hallo Jörg,

eine nette Spielerei - auf solch eine Idee muss man erstmal kommen Emoticon

So eine Art Erklärung könnte evt. diese Seite hier geben, wenn auch irgendwie nicht 100%ig:
{ Link }

Aber nebenbei bemerkt: "select* from t_id where id =null" ist eigentlich so nicht ganz korrekt bzw. Standard-konform, auf null sollte doch immer mit "is" geprüft werden... Emoticon

Grüße,
Sebastian

Gravatar Image2 - Hallo Sebastian,

eine Erklärung ist es aber nur dahin, dass man das "is" benutzen sollte, da ANSI NULLS OFF nicht dem Standard entspricht, aber es sollte doch funktioniren,wenn speuifiziert Emoticon

Gruß JJR

Mach einen Kommentar

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)

Amazon


Impressum

Firmenname: Peanuts-Soft
Straße Nummer: Biinger Strasse 8
PLZ Ort: 55263 Wackernheim
Telefon: +491772134526
E-Mail: joerg.reck @ peanuts-soft.de
Disclaimer: Peanuts-Soft übernimmt keine Garantie dafür, dass die auf dieser Website bereitgestellten Informationen vollständig, richtig und stets aktuell sind. Dies gilt auch für alle Links, auf die verwiesen wird. Peanuts-Soft ist für die Inhalte, auf die per Link verwiesen wird, nicht verantwortlich. Peanuts-Soft haftet nicht für konkrete, mittelbare und unmittelbare Schäden oder Schäden, die durch fehlende Nutzungsmöglichkeiten, Datenverluste oder entgangene Gewinne – sei es aufgrund der Nichteinhaltung vertraglicher Verpflichtungen, durch Fahrlässigkeit oder eine andere unerlaubte Handlung – im Zusammenhang mit der Nutzung von Dokumenten oder Informationen bzw. der Erbringung von Dienstleistungen entstehen, die auf dieser Web Site zugänglich sind.
Datenschutz: Inhalt und Gestaltung der Internetseiten sind urheberrechtlich geschützt. Eine Vervielfältigung der Seiten oder deren Inhalte bedarf der vorherigen schriftlichen Zustimmung von Peanuts-Soft.


Locations of visitors to this page

Powered By

Domino BlogSphere
Version 3.0.2