Ich fand es ziemlich schwierig, eine Reihe von Zahlen als Zeilen zu erreichen MySQL
.
Zum Beispiel wird der Bereich 1-5 erreicht durch:
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
wird darin enden, dass:
1 2 3 4 5
Für 0-99 kann ich zwei 0-9-Tische kreuzen:
CREATE TABLE nums as
SELECT 0 as num
UNION
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
UNION
SELECT 6
UNION
SELECT 7
UNION
SELECT 8
UNION
SELECT 9
;
Select n.num*10+nums.num v
From nums n cross join nums
Ich bin es leid, all diese UNION
s zu schreiben und nach einer Möglichkeit zu suchen, den Code zu verkleinern.
Irgendwelche Ideen, wie man in MySQL oder einer anderen SQL-Syntax Golf spielt (zum Beispiel im Bereich von 0-1.000.000)?
Zusätzliche Punkte werden vergeben für:
- einzelne Aussage
- keine Prozeduren
- keine Variablen
- keine DDL-Anweisungen
- nur DQL-Anweisungen
generate_series()
. Wir haben hier einige Anwendungsbeispiele .