Guude in die Runde
Ich beschäftige mich schon seit über 30 Jahren (beruflich) mit Datenbanken wie Informix, Oracle, MS-SQL, ...
Jetzt wollte ich mal privat mit SQLite anfangen.
Das Installieren (SQLiteStudio) und das Anlegen einer ersten Datenbank hat ja alles super geklappt.
Nun wollte ich aber mal schnell eine Abfrage schreiben, die auch einen LIKE Befehl beinhaltet.
In der Datebank stehen in der Tabelle TAB1 im Feld FLD1 Werte wie
'ABC_IDX_TST_01'
'XYZ_IDX_TST_02'
'XYZ_IDX_TST_03'
....
Die Abfrage soll lauten:
SELECT * FROM TAB1 WHERE FLD1 LIKE '%IDX_TXT%'
Okay, der Underline ist ein Wildcard-Zeichen, sollte also interpretiert werden.
Und zwar steht "_" für ein beliebiges Zeichen, so auch für das "_" im Feld selbst
Aber im Gegensatz zu MS-SQL bekomme ich keinen Treffer angezeigt.
Also mal in der Doku gestöbert, die es so Online gibt.
Ah, auch SQLite kennt ESCAPE, also
SELECT * FROM TAB1 WHERE FLD1 LIKE '%IDX_TXT%' ESCAPE '_' ; laut Online Info
oder
SELECT * FROM TAB1 WHERE FLD1 LIKE '%IDX#_TXT%' ESCAPE '#' ; MS_SQL-Like
Nope, kein einziger Satz wird zurück geliefert.
Ein
SELECT CASE SUBSTR(FLD1,8,1)='_' THEN 1 ELSE 0 END FROM TBL1
bestätigt, dass dort ein Underline steht und kein sonstiges Zeichen
Vielleicht kann ja einer der Experten mir einen Tipp geben, was ich falsch mache
Gruß Ingo
Ich beschäftige mich schon seit über 30 Jahren (beruflich) mit Datenbanken wie Informix, Oracle, MS-SQL, ...
Jetzt wollte ich mal privat mit SQLite anfangen.
Das Installieren (SQLiteStudio) und das Anlegen einer ersten Datenbank hat ja alles super geklappt.
Nun wollte ich aber mal schnell eine Abfrage schreiben, die auch einen LIKE Befehl beinhaltet.
In der Datebank stehen in der Tabelle TAB1 im Feld FLD1 Werte wie
'ABC_IDX_TST_01'
'XYZ_IDX_TST_02'
'XYZ_IDX_TST_03'
....
Die Abfrage soll lauten:
SELECT * FROM TAB1 WHERE FLD1 LIKE '%IDX_TXT%'
Okay, der Underline ist ein Wildcard-Zeichen, sollte also interpretiert werden.
Und zwar steht "_" für ein beliebiges Zeichen, so auch für das "_" im Feld selbst
Aber im Gegensatz zu MS-SQL bekomme ich keinen Treffer angezeigt.
Also mal in der Doku gestöbert, die es so Online gibt.
Ah, auch SQLite kennt ESCAPE, also
SELECT * FROM TAB1 WHERE FLD1 LIKE '%IDX_TXT%' ESCAPE '_' ; laut Online Info
oder
SELECT * FROM TAB1 WHERE FLD1 LIKE '%IDX#_TXT%' ESCAPE '#' ; MS_SQL-Like
Nope, kein einziger Satz wird zurück geliefert.
Ein
SELECT CASE SUBSTR(FLD1,8,1)='_' THEN 1 ELSE 0 END FROM TBL1
bestätigt, dass dort ein Underline steht und kein sonstiges Zeichen
Vielleicht kann ja einer der Experten mir einen Tipp geben, was ich falsch mache
Gruß Ingo