Hilfe bei Case

CREATE OR REPLACE VIEW stGrLaView AS 
 SELECT stGrLa.gruppe, stGrLa.stGrLaID,
        CASE
		WHEN has_table_privilege('stGrLa', 'select') = true THEN stGrLa.lager
	ELSE 
        END AS lager
 FROM stGrLa;

GRANT SELECT ON TABLE stgrlaview TO public;

Hallo Leute

Ich habe die o.g. Case Anweisung und komm beim Else nicht mehr weiter. Da soll folgendes passieren:

die spalte lager soll komplett dargestellt werden, bis auf die 3 höchsten Werte. Die sollen alle einer werden.

Beispiel:
Inhalt der Spalte

lager
------
1
2
3
4
5
6
8
9
10



lager
------
1
2
3
4
5
6
8
8
8

Am besten wäre natürlich nochmal ein Case aber ich hab das nicht hinbekommen.

So hab ich es probiert:

CASE WHEN stGrLa.lager > 7 THEN 8 ELSE stGrla.lager

So. Ich hab die Lösung.

Einfacher als gedacht.

CREATE OR REPLACE VIEW stgrlaview AS 
 SELECT stgrla.gruppe, stgrla.stgrlaid, 
	CASE
                WHEN  has_table_privilege('stgrla'::text, 'select'::text) = true THEN stgrla.lager
		WHEN  stgrla.lager < 8 THEN stgrla.lager
            ELSE 9
        END AS lager
   FROM stgrla;