Mam kolumnę VARCHAR
, która zawiera 5 informacji (2 i 3 TIMESTAMP
) oddzielonych "$
".Dzielenie VARCHAR w DB2 w celu pobrania wartości wewnątrz
CREATE TABLE MYTABLE (
COL VARCHAR(256) NOT NULL
);
INSERT INTO MYTABLE
VALUES
('AAA$000$2009-10-10 10:50:00$null$null$null'),
('AAB$020$2007-04-10 10:50:00$null$null$null'),
('AAC$780$null$2007-04-10 10:50:00$2009-04-10 10:50:00$null')
;
chciałbym wyodrębnić pole 4th ...
'AAA$000$2009-10-10 10:50:00$null$null$null'
^^^^ this field
... mieć coś podobnego
SELECT SPLIT(COL, '$', 4) FROM MYTABLE
1
-----
'null'
'null'
'2009-04-10 10:50:00'
szukam w tej kolejności:
- Funkcja ciągów wbudowanych DB2
- zabudowany oświadczenie takie jak
SUBSTR(COL, POSSTR(COL)+1)...
- użytkownik definiuje funkcję, która zachowuje się jak
SPLIT
Precyzja: Tak, robię wiedzieć, że to nie jest dobry pomysł, aby mieć takie kolumny ...
Zaakceptowanie go, ponieważ jest to dokładnie to, czego szukałem (trzecia opcja). Czy możesz po prostu dodać modyfikator 'DETERMINISTIC' i' NO EXTERNAL ACTION', aby móc go używać w klauzuli "GROUP BY"? –
Dobra uwaga. Zmieniono, aby zwrócić NULL, gdy element nie został znaleziony. Żądanie pierwszego elementu, z nieistniejącym-deliemetrem, zwróci oryginalny ciąg. – Toni