2017-10-04 2 views
0

Ich möchte 4 Spalten in einer PostgreSQL-Abfrage verketten und Einheiten hinzufügen, wenn Spalten nicht leer sind.PostgreSQL verketten Integer und real und Einheiten hinzufügen

SELECT 
    CASE 
     WHEN a.length_m notnull THEN a.length_m || 'm' 
     WHEN a.area_ar notnull THEN a.area_ar || 'ar' 
     WHEN a.vol notnull THEN a.vol || 'cbm' 
     WHEN a.pcs notnull THEN a.pcs || 'pcs' 
    END as quant; 
FROM actions a; 

Das funktioniert gut, aber wenn ich Werte in zwei Spalten habe, zeigt es mir nur die erste. Wie muss ich meine Abfrage ändern, damit ein zweiter WHEN ausgewertet wird?

Antwort

1

Verwendung COALESCE:

SELECT COALESCE(a.length_m ||'m', '') || 
     COALESCE(a.area_ar ||'ar', '') || 
     COALESCE(a.vol ||'cbm', '') || 
     COALESCE(a.pcs ||'pcs', '') as quant 
FROM actions a; 
Verwandte Themen