SQL for Idioter

Juetho, CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0, via Wikimedia Commons

Hvorfor skrive den håpløst banale

ALT 1:
select 1 + 1 from dual

Når man kanskje heller burde skrive ALT 2. Denne versjonene er mer skalerbar og generell – og den tar tallet 1 på stort alvor. Denne versjonen er også rigget for en mer kompleks verden, som i mye høyere grad lar tallet 1 – selve byggesteinen for alle regnestykker leve et mer spennende liv.

ALT 2:
select
(select
sum(val)
from
(select
case
when mod(level, 2) = 1 then 1
else 1
end as val
from dual
connect by level <= 2)
) as resultat
from dual
where exists (
select 1
from (
select /*+ NO_MERGE */
count(*) cnt
from dual
group by rollup(1)
)
where cnt is not null
);

Eller kanskje når man tenker seg lenge og grundig om, kanskje heller burde satse på denne – ALT 3: Denne versjonen er forberedt på hva som helst som vil komme i både nær og fjern fremtid. Kan tilpasses alt fra mobiltelefoner til kjøleskap. Med denne versjonen får tallet 1 et skikkelig løft. Et valg for fremtiden.

ALT 3:
select
extractvalue(
xmltype(
dbms_xmlgen.getxml(
'SELECT SUM(x) AS r FROM (' ||
' SELECT TO_NUMBER(REGEXP_SUBSTR(''A1B1C'',''[0-9]'',1,LEVEL)) x ' ||
' FROM dual CONNECT BY LEVEL <= REGEXP_COUNT(''A1B1C'',''[0-9]'')' ||
')'
)
),
'/ROWSET/ROW/R'
) as resultat
from dual
where 1 = (
select count(*)
from (
select distinct
nvl2(dummy, 1, 0) as d
from dual
model
dimension by (0 as i)
measures (dummy)
rules (
dummy[0] = 'X'
)
)
);

Oppdag mer fra vlogg

Abonner nå for å fortsette å lese og få tilgang til hele arkivet.

Fortsett å lese