SELECT, esempi
-
select * from tab
E' un classico per vedere quali tabelle sono presenti nel db.
-
select * from tabs
Assolutamente analogo al precedente, tranne per il fatto che le informazioni
restituite sono molte di piu'.
-
select trim(' 45 ')+10 from dual
Cast automatico. Restituisce: 55
-
select ' 45 '-' 8 '+10 from dual
Cast automatico. Restituisce: 47
-
select substr('65401'+520,3,2)/2 from dual
Cast automatico. Restituisce: 46 1) '65401'+520=65921; 2) substr('65921',3,2)='92';
3) '92'/2=46
-
select trim(null) from dual
select trim(null)||null from dual
select substr(trim(null)||null-null*null/null,null) from dual
Cast automatico. Restituisce: null, per ognuna delle tre query.
Mix di cast automatici ed operazioni su valori nulli. Attenzione che la divisione per null non provoca errore,
ma la divisione per 0 si'.
-
select count(*), 'forum vendite' from forum_vendite where nome is null
union
select count(*), 'forum acquisti' from forum_acquisti where nome is null
Tabelle con nomi inventati (dei forum vendite ed acquisti potrebbero essere
realizzati in altro modo...). Il risultato potrebbe essere il seguente:
[(8, 'forum vendite'), (14, 'forum_acquisti')]
-
select mia_sequenza.currval as id from dual
Posto che mia_sequenza sia una sequenza, ottengo il valore corrente della sequenza
stessa. Per ottenere il successivo "mia_sequenza.nextval".
-
select count(*), tipo_merce from merci group by tipo_merce
Conto quanti elementi di una particolare "merce" sono presenti nella tabella "merci".
Grazie al "group by" non ho duplicati.
-
select to_char(null,'DD/MM/YYYY') as data_prova from dual
Restituisce null.
-
select (
select (
select count(*) from messaggi_forum where id=24
) as numero_messaggi from dual
) as farsi_del_male from dual
Giusto per fare un po' di scena... e di casino.
|