mercoledì 17 luglio 2013

Oracle - esiste una funzione IS NUMERIC in SQL+ ?

Come verificare se il valore restituito da una Query SQL è numerico?
Ultimo aggiornamento 02/09/2016
Ciao Vincent, ho necessità di escludere le righe che in un campo di tipo stringa riportino un valore che non sia un numero. Come posso fare?
Grazie, Ata
Ciao Ata e grazie della domanda. Approfitto per ricordare a tutti che sono raggiungibile via mail, su FB e nelle modalità che ho raccolto in Seguimi

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]
Purtroppo non mi sembra vi sia una funzione SQL+ che esegua questo controllo. La funzione esiste invece in altri contesti:
- IsNumeric Visual Basic
- IsNumeric VBScript
- ISNUMERIC MS Excel

Ho visto che puoi utilizzare questa soluzione, oppure potresti eseguire una replace con NULL del valore testuale (laddove fosse individuabile) ed eseguirne la to_number.

SELECT * 
FROM [tabella] 
WHERE TO_NUMBER(REPLACE([campo],'-',NULL)) IS NOT NULL

Dove [campo] è il valore oggetto della tua verifica.
E [tabella] è la tabella dalla quale stai estraendo il dato nel [campo].
Valuta questa ulteriore soluzione più generalizzata che sfrutta la TRANSLATE.

SELECT
DECODE(replace(translate([campo],'1234567890','##########'),'#'),NULL,'NUMERO','NONNUMERO')
FROM [tabella] 


LLAP!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!

Siti consultati:
techonthenet.com/ EN
msdn.microsoft.com/
w3schools.com/ EN
community.oracle.com/ EN
stackoverflow.com/ EN

Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.



DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

1 commento:

  1. Ho arricchito il post aggiungendo la soluzione che passa per la translate

    RispondiElimina

Nel rispetto della normativa sul trattamento dei dati personali (GDPR n. 679/2016) puoi scegliere di commentare questo post usando il tuo account Google, oppure avvalerti delle opzioni Anonimo o Nome/URL disponibili dal menù a tendina in questo form. In ogni caso, nessuno dei tuoi dati personali verrà usato dall'amministratore di questo blog né venduto a terzi. Per tutelare la sicurezza dei lettori i commenti postati dagli utenti che contengano link cliccabili saranno cancellati. Spunta Inviami notifiche per continuare a seguire i commenti del post.

Potrebbe interessarti...
Ultimo articolo pubblicato:
Come donare attimi felici a bimbi ucraini profughi in Italia da Amazon


Ideale per la scuola media! ad 
Lenovo Tab M10 FHD Plus (2nd Gen) Tablet - Display 10.3" FHD (MediaTek Helio P22T,Storage 64GB Espandibile fino ad 1TB,RAM 4GB,WiFi+Bluetooth,4G LTE,2 Speaker,Android 9 Pie) Grigio – Esclusiva Amazon