Friss topikok

Day of week

2009.10.22. 16:52 | koc | Szólj hozzá!

Azaz a hét melyik napja van.

Láttam erre egy igen faramuci megoldást, ami a

TO_CHAR(date, 'D')

függvényt használta. Ez ugye azt mondja meg, hogy hanyadik nap ez a dátum az adott héten. Csakhogy az NLS beállítástól függően ez több értéket is mutathat egy adott napra. Hát a kedves kollega kiválasztott egy dátumot, amiről tudta, hogy biztosan péntek. 4-5 évre előre az időben - hogy miért, ne kérdezzétek. Ebből kivonta az ötöt, így képzett egy offset értéket, amit kivonva a függvény értékéből megkapta a függvény magyar nyelvterületen megszokott értékét. Nem szép, de működik.

Címkék: nls to char

Connect by root 9i

2008.09.23. 08:13 | koc | Szólj hozzá!

A hierarchikus lekérdezések egyik legnagyobb erénye a CONNECT_BY_ROOT unáris operátor, mely a paraméter oszlop értékét az adott sorhoz tartozó gyökérelemből veszi ki. Használata:

SELECT ename AS employee, CONNECT_BY_ROOT empno AS root, LEVEL
FROM scott.emp
START WITH ename='KING'
CONNECT BY NOCYCLE PRIOR empno = mgr AND LEVEL <= 4

Címkék: hierarchical query connect by root sys connect by path

SELECT * FROM t WHERE t.x = MAX(t.x)

2008.08.26. 07:02 | koc | 1 komment

A fent leírt select így nyilvánvalóan értelmetlen, de arra alkalmas, hogy a probléma velejét megragadjuk, azaz hogyan tudjuk kiválasztani egy tablából azt a sort, amelyik egy tetszőleges oszlop szerinti rendezés alapján maximális, vagyis utolsó.

A hagyományos módszer így nézne ki:

SELECT t.* FROM t, (SELECT  MAX(r) mr FROM t) t1 WHERE t.r = t1.mr

Címkék: max analytic query last value first value

Outer join vs. IN vagy OR

2008.08.18. 15:18 | koc | Szólj hozzá!

Vannak esetek amikor valódi problémát jelent az, hogy az IN operandus, illetve az OR kapcsolat a feltételek között nem használható outer join esetén. Pélául az alábbi feltétel:

t1.month(+) IN (200808, 200809)

az alábbi hibaüzenetet dobja:

ORA-01719: outer join operator (+) not allowed in operand of OR or IN

· 1 trackback

Címkék: in or decode outer join

süti beállítások módosítása