Query prototyping mit dem "values" Schlüsselwort

Posted on Mo 16 Jänner 2017 in Blog

Manchmal hat man das Bedürfnis schnell ein Feature zu testen, damit man sehen kann wie sich dieses Feature verhält und will nicht immer eine eigene Tabelle mit Werten anlegen. Für diesen Zweck ist eignet sich das „values“-Schlüsselwort sehr gut. Es ermöglicht Abfragen zu schreiben ohne Tabelle anlegen zu müssen

SELECT test FROM ( VALUES ('value 1a', 'value 1b'),
('value 2a', 'value 2b') , ('value 3a', 'value 1b')) as test

Diese Abfrage liefert jetzt allerdings einen Typ “record“. Daher ist es durchaus sinnvoll den Namen der Spalten zu spezifizieren.

SELECT column_1, column_2 FROM ( VALUES ('value 1a', 'value 1b'),
('value 2a', 'value 2b') , ('value 3a', 'value 1b')) as test
(column_1, column_2)

So ist es einfacher möglich auf die einzelnen Spalten zuzugreifen und man könnte jetzt auch z.B. Aggregatfunktionen testen

SELECT count(distinct column_1), count(distinct column_2) FROM
( VALUES ('value 1a', 'value 1b'), ('value 2a', 'value 2b'),
('value 3a', 'value 1b')) as test
(column_1, column_2)

Diese Beispiele waren natürlich sehr simpel gehalten, aber ich denke man sieht schön wie man mit „values“ einfach und effizient „Query prototyping“ betreiben kann.