Sorry für das Spamen. Ich habe gefunden, dass es die variable Position gibt.
Mit etwas Hilfe konnte ich es auf den ersten Blick hinkriegen, dass die Klemmen nach dem Prinzip
Seite, Position dann Zahl aus der Klemmenbezeichnung dann N und dann PE
sortiert wird.
hier der Code:
SELECT
printf('%-6s', diagram_position) AS Seite,
printf('%-10s', label) AS BMK,
printf('%-6s', position) AS Position,
printf('%-10s', manufacturer) AS "externes Ziel",
printf('%-30s', manufacturer_reference) AS Kabel,
printf('%-80s', supplier) AS Brücke,
printf('%-15s', designation) AS "internes Ziel"
FROM element_nomenclature_view
WHERE element_type = 'terminal'
AND label IS NOT NULL
AND label <> ''
AND label LIKE '%X2%'
ORDER BY
diagram_position,
SUBSTR(position, 1, 1), -- Sortiere nach dem Buchstaben der Position (z.B. F)
CAST(SUBSTR(position, 2) AS INTEGER), -- Sortiere nach der Zahl der Position (z.B. 2, 3, 4 …)
CASE
WHEN substr(label, instr(label,':')+1) NOT GLOB '*[^0-9]*' THEN 0 -- ausschließlich Ziffern: numerisch
WHEN substr(label, instr(label,':')+1) = 'N' THEN 1 -- dann "N"
WHEN substr(label, instr(label,':')+1) = 'PE' THEN 2 -- dann "PE"
ELSE 3
END,
CASE
WHEN substr(label, instr(label,':')+1) NOT GLOB '*[^0-9]*'
THEN CAST(substr(label, instr(label,':')+1) AS INTEGER)
ELSE 0
END;