tengo una columna VARCHAR
que contiene 5 informaciones (2 CHAR(3)
y 3 TIMESTAMP
) separados con '$
'.Dividir un VARCHAR en DB2 para recuperar un valor dentro
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')
;
me gustaría extraer el cuarto campo ...
'AAA$000$2009-10-10 10:50:00$null$null$null'
^^^^ this field
... para tener algo como
SELECT SPLIT(COL, '$', 4) FROM MYTABLE
1
-----
'null'
'null'
'2009-04-10 10:50:00'
que estoy buscando, en este orden:
- Una función de cadena incorporada de DB2
- Un integrable declaración como
SUBSTR(COL, POSSTR(COL)+1)...
- Una función definida por el usuario que se comporta como
SPLIT
Precisión: Sí, lo hago saben que no es una buena idea tener este tipo de columnas ...
Al aceptarlo, ya que es exactamente lo que busqué (tercera opción). ¿Puedes agregar el modificador 'DETERMINISTIC' y' NO EXTERNAL ACTION', para poder usarlo en una cláusula 'GROUP BY'? –
Buen punto. Modificado para devolver NULL cuando el elemento no se encuentra. Al solicitar el primer elemento, con deliemeter no existente se devolverá la cadena original. – Toni