# ungerade zahlen filtern



## chrisjahl (20. November 2007)

hallo leutz,

wie der name des threads schon sagt, möchte ich in eiener spalte mir nur die ungerade zahlen ausgeben lassen, hatte da auch schone ien IDEE mit dem like operator aber dies funktionierte nicht bei alle ungeraden endungen:
SELECT NAME, REG_NR 
FROM PATIENT
WHERE REG_NR LIKE '%1' '%3' '%5' '%7' '%9';

leider zeigt er mir nix aber, gibt aber auch keien fehlermeldung aus

weis jemand rat oder wie man es noch lösen könnte 

danke im voraus

mfg chris


----------



## olqs (21. November 2007)

Probiers mal so:

```
SELECT NAME, REG_NR
FROM PATIENT
WHERE REG_NR % 2 = 1;
```

% ist der Modulo Operator, und bezeichnet die Restmenge bei einer Division durch eine Zahl.


----------



## chrisjahl (21. November 2007)

leider funktioniert es nicht Oracles SQL Developer meckert rum die dritte Zeile an Stelle 13 ein ungültiges Zeichen sei.
weißt du oder jemand anderes noch eine Lösung des problems

vielen dank im voraus

mfg chris


----------



## CraisiePrinzZ (21. November 2007)

In Oracle steht das %-Zeichen leider für ein willkürliches Zeichen, wie das * bei Microsoft.

Versuchs doch mal so


```
SELECT NAME, REG_NR
FROM PATIENT
WHERE mod( REG_NR,2) = 1;
```

Hier die Erklärung:

mod(m,n)  	m Modulo n (Rest von m geteilt durch n)


----------



## chrisjahl (21. November 2007)

vielen vielen Dank, es hat funktioniert, ich kenne das Zeichen % nur dazu um nach Wörtern zu suchen die vor oder nachdem Buchstaben wo man das Ziehcen setzt beliebig viele Zeichen haben können
Bsp:
Hallo in SQL damit:  H%

danke nochmals für die hilfe


----------

