Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [SQL] Select * dove c'è "28%"

    Ragazzi, mi serve un aiutino.

    Devo fare una query per selezionare se i record dove appare la parola "28%" . Visto che il % è un operatore... come posso fare?

    "SELECT * FROM attivita WHERE testo LIKE %28%%" ????

    Chiaramente non funziona.

    Qualcuno sa come si fa in questo caso?

    Grazie :berto:

  2. #2
    gli apicini non funzionano?

  3. #3
    Usare una query parametrica?
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Lo standard SQL prevede che si possa definire un carattere di escape per dire al DBMS che il simbolo % (o anche _) deve essere interpretato proprio come carattere e non come operatore.

    Nel tuo caso dovresti fare ad esempio così:

    codice:
    SELECT *
    FROM attivita
    WHERE testo LIKE '%28\%' ESCAPE '\\';
    dove la parola chiave ESCAPE appunto specifica che nella stringa precedente il backslash (nel caso specifico) deve essere interpretato come carattere di escape.

    Ovviamente è possibile che il DBMS che utilizzi (a proposito: qual è?) non implementi questa funzionalità...
    every day above ground is a good one

  5. #5
    Grazie per questo ultimo consiglio.

    Ho provato ma mi da questo errore: Errore di sintassi (operatore mancante) nell'espressione della query 'testo LIKE '%28\%' ESCAPE '\''.

    Il DB è Access e il lunguaggio è ASP.

    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,311
    non sono sicuro che access accetti questo comando... ma provaci e facci sapere

    codice:
    SELECT * 
    FROM attivita 
    WHERE attivita.testo containing '28%'
    ciao

  7. #7
    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'testo containing '28%''.


  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,311
    ed eccoti il 'pezzotto'.... spero ti piaccia e che funzioni

    codice:
    SELECT 
    attivita.testo,
    REPLACE(attivita.testo,'%','_')
    from attivita
    where REPLACE(attivita.testo,'%','_') Like '%28_%'
    facci sapere nel bene e nel male


  9. #9
    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Funzione 'REPLACE' non definita nell'espressione. :berto:

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,311
    allora proprio non so...

    quali sono le funzioni supportate da questo database che usi?

    esiste una funzione per effettuare una replace nella stringa?

    eppure credevo esistesse la funzione replace in access
    http://www.techonthenet.com/access/f...ndex_alpha.php

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 © 2024 vBulletin Solutions, Inc. All rights reserved.