Buongiorno a tutti,
Da qualche giorno sto discutendo con il mio db sql ce 3.1 e non ne vengo a capo.
Nel mio dispositivo utilizzo un sql ce 3.1 e una query in particolare non funziona come dovrebbe.
Testando la stessa query sul mio pc però, ottengo i risultati corretti(ovviamente utilizzando lo stesso db).
La mia tabella ha un campo che contiene dati tutti in questo formato "ABC12345"(type nvarachar).
Ebbene quando cerco di matchare questo campo con una stringa intera non mi torna nessun risultato.
La query incriminata è:
-select count(myfield) from mytabel where myfield = 'ABC12345'
La suddetta query non funziona sul dispositivo portatile ma sul pc si.
Il comportamento che trovo anomalo è dato dalle successive query:
-select count(myfield) from mytabel where myfield like 'ABC%2345' fallita
-select count(myfield) from mytabel where myfield like 'AB%12345' fallita
-select count(myfield) from mytabel where myfield like 'AB%2345' eseguita con successo
Poi tutti gli altri tipi di query con l'espressione like spostando solo il '%' li prende come validi, solamente il confronto con la stringa intera fallisce o nei 2 casi di cui sopra.
Un altro comportamento anomalo che non comprendo è questo:
-select count(myfield) from mytabel where UPPER(myfield) = 'ABC12345' eseguita con successo
-select count(myfield) from mytabel where LOWER(myfield) = 'ABC12345' eseguita con successo
La domanda è: perchè? sql ce 3.1 non è case-sensitive e tanto meno i dati nella tabella hanno un formato diverso da quello che gli passo come confronto, tant'è che da pc la query funziona senza problemi.
Qualcuno può o riesce a darmi qualche suggerimento in merito?
Grazie mille,
Riccardo

Rispondi quotando