- Używam amazon przesunięcie ku czerwieni, jak mój hurtowni danych
- Mam pole (pole1) typu string. Niektóre ciągi zacząć z czterech cyfr i innymi literami:
„alpha test”
„test 1382 beta”SQL Server IsNumeric() równowartość w Amazon redshifcie
- chcę odfiltrować wiersze gdzie łańcuch nie rozpocznie z czterech numery
- Patrząc na dokumentację redshift, nie uważam, że jest liczbą lub isnumeric to funkcje. Wydaje się, że najlepszą funkcją jest funkcja "podobna".
że próbował
którym lewy (pole1, 4), takie jak '[0-9], [0-9], [0-9], [0-9]:
to nie pracy i z linku poniżej wydaje się przesunięcie ku czerwieni nie może wspierać że:
https://forums.aws.amazon.com/message.jspa?messageID=439850
tam jest błąd w klauzuli „gdzie”? jeśli nie, a klauzula nie jest obsługiwana w redshift, czy istnieje sposób filtrowania? Myślałem o użyciu obsady
cast(left(field1,4) as integer)
a następnie przechodząc nad wiersz, jeśli generowany błąd, ale nie wiem, jak to zrobić w Amazon przesunięciu ku czerwieni. lub jest jakiś inny proxy dla filtra isnumeric.
dzięki
Twój przykład nie działa w PostgreSQL. ILIKE nie obsługuje wyrażeń regularnych. Amazon Redshift bazuje na PostgreSQL 8.0.2, więc może możesz użyć operatora SIMILAR http://www.postgresql.org/docs/8.0/interactive/functions-matching.html#FUNCTIONS-SIMILARTO- REGEXP, ponieważ SIMILAR to może być słowo kluczowe. .. niektóre jak podciąg SELECT ("1234 xxx" Z 1 NA 4) podobne do "[\ d] {4}"; –