Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250

    SQL - distingure ultimo carattere dato estratto come stringa

    Ciao a tutti e grazie per tutti quelli che mi risponderanno .
    Ho una domanda forse banale ma ...

    Posso usare solo SQL e NON T-SQL ecc

    mediante select sto estraendo dei dati, ma dovrei filtrare le stringhe dei dati estratti in base al TIPO di carattere presente nell'ultima posizione di una stringa medesima.
    In pratica:

    1) come faccio a capire che l'ultimo carattere di una stringa é un numero?
    analogamente
    2) come faccio a capire che l'ultimo carattere di una stringa estratta é una cifra ?

    vorrei inserire alternativamente questi vincoli nella where della query che sto creando.

    Vi ringrazio della cortesia, pazienza e attenzione.

    Ciao
    Evander

  2. #2

    Re: SQL - distingure ultimo carattere dato estratto come stringa

    Originariamente inviato da EvanderIV
    1) come faccio a capire che l'ultimo carattere di una stringa é un numero?
    analogamente
    2) come faccio a capire che l'ultimo carattere di una stringa estratta é una cifra ?
    differenza tra numero e cifra? differenza tra stringa e stringa estratta?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250
    Ciao
    Grazie per la disponibilità e pazienza.

    Non sono stato molto chiaro in effetti .
    Nella Where devo inserire un costritto che rappresenti la condizione:

    "se l'ultimo carattere della stringa estratta é una cifra"

    Sono su Oracle se può fare differenza.
    Evander

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    select * from tabella where regexp_like(campo, '[a-z]$')

    select * from tabella where regexp_like(campo, '[0-9]$')

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250
    Ciao GRAZIE!


    Ho provato ma ho il seguente errore:

    ORA-00900: istruzione SQL non valida

    Ho anche riprovato, probabilmente in modo errato così : regexp_like(RIGHT(nome_campo,1),'[0-9]$')

    ma il risultato é lo stesso.

    Pareri?

    Grazie ciao!
    Evander

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Strano. Che versione di oracle usi?

    Prova così

    select * from tabella where ascii(substr(campo,-1)) between 48 and 57

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250
    Grazie!!!!
    La 9.2
    secondo te é normale che con questa versione ci siano limitazioni particolari ? (sto imparando e
    approfondire mi interessa)

    pare funga ma ti volevo chiedere un chiarimento anche se banale, essendo nuovo del mondo oracle:

    "between 48 and 57" si riferisce ai caratteri numerici della tabella ascii giusto?
    giusto per non avere dubbi.

    GRAZIE!

    ciao
    Evander

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ah ok. La prima query che ti ho scritto non ti funziona perchè usi la versione 9 di oracle.

    Esatto, 48 è il numero che corrisponde al carattere 0, 57 ovviamente al 9.
    Usando lo stesso procedimento puoi verificare che l'ultimo carattere sia una lettera.


    select * from tabella where ascii(lower(substr(campo,-1))) between 97 and 122

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    250
    Ottimo!!


    Ti ringrazio davvero per la chiarezza e disponibilità.

    Ciao.
    Evander

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prego. In futuro ricordati di indicare nel titolo della discussione il database utilizzato, visto che la sintassi spesso differisce da db a db e, come in questo caso, anche da versione a versione dello stesso sw.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.