   (let [not-blank? (complement str/blank?)]
     (cond-> []
       (not-blank? Telefonnummer1)
-      (conj {:label Telefonbezeichner1
+      (conj {:label (or Telefonbezeichner1 "")
              :nummer (build-number Vorwahl1 Telefonnummer1)})
       
       (not-blank? Telefonnummer2)
-      (conj {:label Telefonbezeichner2
+      (conj {:label (or Telefonbezeichner2 "")
              :nummer (build-number Vorwahl2 Telefonnummer2)})
       
       (not-blank? Telefonnummer3)
-      (conj {:label Telefonbezeichner3
+      (conj {:label (or Telefonbezeichner3 "")
              :nummer (build-number Vorwahl3 Telefonnummer3)}))))
 
 (defn parse-out-tel [person]

                 :when (not (str/blank? gemeinschaft))]
             {:name gemeinschaft}))))


(defn unmittelbar? 
  ([{:keys [Übergeordnetegruppe Gruppe]}] 
   (= Übergeordnetegruppe Gruppe))

   (first)
   (str ";")))

(defn wrap-in-transaction [& x]
  (str (apply str "BEGIN;\n" x) "\nCOMMIT;"))

(print
  (let [persons (map parse-person old)
        gruppierungen (disj (into #{} (map #(select-keys % #{:Übergeordnetegruppe :Gruppe})) persons) {})] 
    (wrap-in-transaction
      (str/join "\n"
        (map format-sql
          (concat
           [(gruppierungs-typ-sql)]
           (gruppierungen-sql (topo-sort gruppierungen))
           (let [ordensgruppen (into #{} (map #(select-keys % #{:Ordensgruppe :Älterengemeinschaft})) persons)]
             [(älterengemeinschaften-sql (set (map :Älterengemeinschaft ordensgruppen)))
              (ordensgruppe-types-sql (disj (set (map ordensgruppe-typ (map :Ordensgruppe ordensgruppen))) nil))
              (ordensgruppen-sql ordensgruppen)])
           [(persons-sql persons)
            (addresses-sql persons)
            (phones-sql persons)]
           (pemissions-sql persons)
           [(amttypen-sql persons)
            (ordensmitgliedschaften-sql persons)]))))))
     