Prowadzę tę część zapytania na postgres i działa dobrze

where column ~ '^[0-9]'

Ale kiedy próbuję uruchomić go w Sqlite, otrzymuję ten błąd:

w pobliżu "~": błąd składniowy

Czy masz jakiś pomysł, jak mogę uruchomić tę funkcję w SQLite?

1
user14705639 15 kwiecień 2021, 14:46

2 odpowiedzi

Najlepsza odpowiedź

Właściwie, jeśli chcesz kolumny, które zaczynają się od cyfry, możesz po prostu użyć:

where substr(column, 1, 1) between '0' and '9'

Sqlite nie ma natywnego wsparcia dla wyrażeń regularnych - chociaż jest naprawdę łatwy do rozszerzenia. Używa obsługa UNIX Globbing, ale w tym przypadku można użyć wbudowanych funkcji.

3
Gordon Linoff 15 kwiecień 2021, 11:47

SQLite obsługuje GLOB operator:

WHERE column GLOB '[0-9]*'

[0-9] oznacza, że wartość zaczyna się od cyfry numerycznej i {x1}} oznacza, że może śledzić dowolne znaki.

2
forpas 15 kwiecień 2021, 12:53