preload
Jan 21

Dieser Artikel ist eher ein Reminder an mich selbst bzw. ein Vorschlag, wie man meiner Ansicht nach am besten SQL-Syntax formatieren sollte. Neben dem Beispiel weiter unten gibt es noch ein paar weitere Konventionen (to be continued…), die die Les- und Wiederverwendbarkeit steigern:

  • Sprechende Tabellen-Aliase, aus customer_shipping_adresses wird z.B. csa
  • Immer die Datenbank angeben, nicht nur die Tabelle, also db.user.table
  • Kommata in Feldlisten vor den Feldnamen, erleichtert das auskommentieren

Meine Konventionen bzw. mein Vorschlag ist natürlich Geschmackssache. Ich habe diesbezüglich schon viel gesehen. In der Doku (von Microsoft zum Beispiel) ist die Syntax gänzlich anders dargestellt. Ich bin allerdings der Meinung, dass der “Quellcode-Style” wesentlich besser lesbar ist:

SELECT
   tab1.field1
   ,tab1.field2
   ,tab2.field1
   ,case tab2.field2
      when 'value1' then REPLACE(tab2.field2,
                     'search', 'replace')
      else tab2.field2
    end AS field2
   ,tab3.field1
FROM
   db1.user1.table1 tab1
      INNER JOIN db1.user1.table2 tab2
         ON tab1.field1 = tab2.field1
      LEFT JOIN db2.user2.table3 tab3
         ON tab2.field1 = tab3.field1
WHERE
   tab1.field1 LIKE 'value2'
      AND tab2.field1 = 'value3'
      AND tab3.field1 IN (
         SELECT DISTINCT
            tab4.field1
         FROM
            db3.user3.table4 tab4
      )
ORDER BY
   tab1.field1 ASC
   ,tab2.field1 ASC

Leave a Reply

Switch to our mobile site