VERSCHMELZEN Sie mit NULL

Fand ich dieses snippet von SQL in eine Ansicht, und ich bin ziemlich verwirrt, indem es den Zweck (tatsächliche SQL-gekürzt aus Platzgründen):

SELECT
    COALESCE(b.Foo, NULL) AS Foo

FROM a
LEFT JOIN b ON b.aId=a.Id

Ich kann mir nicht vorstellen, einen einzigen Grund, der Zweck der Koaleszenz mit null statt nur das zu tun diese:

SELECT
    b.Foo AS Foo

FROM a
LEFT JOIN b ON b.aId=a.Id

Oder zumindest nicht über die NULL explizit:

SELECT
    COALESCE(b.Foo) AS Foo

FROM a
LEFT JOIN b ON b.aId=a.Id

Ich weiß nicht, wer erstellt diese (ich kann also nicht Fragen), Wann wurde es verfasst wurde, oder für was bestimmtes MS-SQL-Server-version es geschrieben wurde, für (vor 2008 jedoch sicher).

gibt es keinen stichhaltigen Grund, zu verschmelzen mit NULL statt einfach nur die Auswahl der Spalte direkt? ich kann mir nicht helfen, aber lachen, und schreiben es aus wie ein rookie-Fehler, aber es macht mich Frage mich, ob es einigen "fringe-Fall", dass weiß ich nicht.

  • Scheint wie ein rookie Fehler zu mir.
  • Oder die Anforderung hat mehrmals ändern, damit diese Abfrage habe geändert mehrmals von verschiedenen Entwicklern. Vielleicht COALESCE(b.Foo, NULL) war COALESCE(b.Foo, [einige Wert/Ausdruck]) vor. Dann die Anforderung geändert wird. So kann jemand der gerade geändert zu VERSCHMELZEN(b.Foo, NULL), ohne zu denken.
  • Dies kann ein hacky Weg, um einen Fehler auslöst, wenn "b".Foo war NULL. Ob es gültig ist oder nicht, ist eine andere Frage.
Schreibe einen Kommentar