DB2 tips....
Cosetes de DB2 que estic aprenent ara que hem toca fer servir el SGBD de IBM. Fins ara ho tenia apuntat a la llibreta, però com que me la demanen contiunament o apunto aqui sota:
Obtenir les 10 millors tuples d'una taula:
Aquesta instrucció no se si també estava disponible a Oracle, però va molt bé per obtenir els primers n elements d'una consulta.
SELECT *
FROM ...
WHERE ...
ORDER BY ...
FETCH FIRST 10 ROWS ONLY;
NVL per DB2:
A DB2 el NVL d'Oracle no existeix, i en lloc seu cal utilizar la sentència COALESCE que retorna el primer element no null de la llista de valors
SELECT COALESCE(VAL1, VAL2);
FROM...
que equival a:
if (val1!=null) then val1
else if (val2!=null) then val2
Decode per DB2:
El decode tampoc no existeix a DB2, però com a alternativa es pot utilitzar l'operador CASE, que la veritat trobo molt més comode que el DECODE d'Oracle. Com podeu veure, el decode és casi com un if:
SELECT CASE x WHEN 1 THEN 'un'
WHEN 2 THEN 'dos'
ELSE 'ni un ni dos'
END
FROM ...
sysdate per DB2:
A DB2 tampoc no hi ha el sysdate i en lloc seu hi ha la instrucció: CURRENT DATE.
SELECT ...
FROM ...
WHERE data < CURRENT DATE and any = YEAR(CURRENT DATE)
interessant veure també les consultores que hi ha sobre dates.
Obtenir el següent valor d'una sequència:
SELECT nextval FOR
El que es pot vaure també en aquesta expressió, és que SYSIBM.SYSDUMMY1 es l'equivalent a la taula DUAL d'Oracle.
i en fer un insert:
INSERT INTO ... VALUES (nextval FOR sequencia
Obtenir el rowid d'una fila:
En db2 la sequència és la següent:
SELECT ..., ROW_NUMBER() OVER(),...
FROM ...
I més coses que aniré afegint en aquesta matèxia entrada o en d'altres.
Cap comentari:
Publica un comentari a l'entrada