Groups | Search | Server Info | Login | Register


Groups > de.comp.datenbanken.misc > #2565

Postgres: CASE in Abfrage

From Volker Englisch <eh41@selene.inka.de>
Newsgroups de.comp.datenbanken.misc
Subject Postgres: CASE in Abfrage
Date 2024-06-06 18:56 +0200
Organization Rabbit System
Message-ID <v3spoi$20i8$1@rabbit.rsli.de> (permalink)

Show all headers | View raw


Hallo!

Ich bin mit PostgreSQL eher hobbymäßig beschäftigt und habe eine 
Datenbank für Arbeitszeiten und Termine. Die Tabelle für Termine sieht 
in Kurzfassung so aus:

  Spalte  |              Typ               
----------+--------------------------------+
 id       | integer                        
 person   | character(1)                   
 datum    | date                           
 von      | time without time zone         
 text     | character varying(80)          
 kz       | numeric(1,0)                   
 druckkz  | numeric(1,0)                   
 username | character(8)                   
 zugriff  | timestamp(0) without time zone 
 externkz | numeric(1,0)                   
 listkz   | numeric(1,0)                   
 vortag   | numeric(1,0)                   

Bisher wurden immer Termine ausgegeben, die am heutigen oder morgigen 
Tag anstehen. Die Spalte "vortag" ist neu und soll steuern, ob ein 
Termin tatsächlich schon am Vortag ausgegeben werden soll. Die 
Ermittlung des (Vor-)tages fand so statt:

WHERE (datum::TEXT = TO_CHAR(now(), 'YYYY-MM-DD')
OR (datum - INTEGER '1')::TEXT = TO_CHAR(now(), 'YYYY-MM-DD'))
AND (kz = 0 OR kz= $kz)

Nun soll die mit OR beginnende Zeile so geändert werden, daß 
sie nur beachtet wird, wenn das Feld "vortag" eine 1 enthält. Mein 
Versuch:

CASE vortag = 1
  THEN OR (datum - INTEGER '1')::TEXT = TO_CHAR(... usw)
  ELSE ')'
END

Das ')' wegen der sonst fehlenden schließenden Klammer. Postgres sagt: 
Syntaxfehler bei CASE ...

Geht das überhaupt - in eine WHERE-Anweisung eine Bedingung einzubauen?

Dankeschön für einen kleinen "Tritt" in die richtige Richtung...

Volker

Back to de.comp.datenbanken.misc | Previous | NextNext in thread | Find similar


Thread

Postgres: CASE in Abfrage Volker Englisch <eh41@selene.inka.de> - 2024-06-06 18:56 +0200
  Re: Postgres: CASE in Abfrage Tim Landscheidt <tim@tim-landscheidt.de> - 2024-06-06 17:22 +0000
    Re: Postgres: CASE in Abfrage Volker Englisch <eh41@selene.inka.de> - 2024-06-07 18:29 +0200
  Re: Postgres: CASE in Abfrage Thomas Noll <-_tn_-@web.de> - 2024-06-06 17:39 +0000
    Re: Postgres: CASE in Abfrage Volker Englisch <eh41@selene.inka.de> - 2024-06-07 18:31 +0200
      Re: Postgres: CASE in Abfrage Thomas Noll <-_tn_-@web.de> - 2024-06-07 17:24 +0000
        Re: Postgres: CASE in Abfrage Volker Englisch <eh41@selene.inka.de> - 2024-06-07 22:24 +0200
  Re: Postgres: CASE in Abfrage "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2024-06-06 20:18 +0200
    Re: Postgres: CASE in Abfrage Volker Englisch <eh41@selene.inka.de> - 2024-06-07 18:39 +0200

csiph-web