# Even numbers: SQL

### Problem: Print out the even numbers between 1 and 10 inclusive

Normally you would a simple for/while loop and check for modulus, division but let's do it with SQL and recursive Common Table Expressions CTE

### MySql

```
WITH RECURSIVE seq AS (SELECT 1 AS value UNION ALL SELECT value + 1 FROM seq WHERE value < 11)
SELECT * FROM seq WHERE seq.value % 2 = 0;
```

### MS SQL

```
WITH [seq] AS (SELECT 1 as value UNION ALL SELECT value + 1 FROM [seq] WHERE Value < 11)
SELECT * FROM [seq] [s] WHERE [s].[value] % 2 = 0 OPTION (MAXRECURSION 100);
```

### Sqlite

```
WITH t(val) AS ( SELECT 1 val UNION ALL SELECT val+1 FROM t WHERE val < 11)
SELECT * FROM t WHERE t.val % 2 = 0;
```

### Postgres

```
WITH RECURSIVE t(n) AS (VALUES (1) UNION ALL SELECT n+1 FROM t WHERE n < 11)
SELECT * FROM t WHERE n % 2 = 0;
```

And for fun use the

- seq command
`seq 2 2 11`

- powershell command
`2..11 | Where-Object { $_ % 2 -eq 0 }`

- bash expansion
`echo {2..10..2}`