Eu tenho uma tabela que contém algumas colunas. Infelizmente, ele não foi projetado da melhor maneira e a API REST que grava nesta tabela também não foi projetada bem, mas preciso de uma solução rápida. Na coluna dimension_id
( text
tipo de dados), tenho os próximos valores: 90% das linhas contêm date
like 2024-01-01
, mas outras contêm strings como 9391
or 78417
. Não quero excluir essas linhas agora (muitos dados, um grande projeto, leva muito tempo para entender e reescrever, talvez sejam valores válidos, mas precisam de outra coluna), mas preciso filtrá-los, porque as visualizações criadas em esta tabela cai quando você tenta lançar e filtrar esta coluna.
Então, preciso pegar todas as linhas que dimension_id
contêm date
o padrão.
Eu tentei com
select * from table
where TO_DATE(dimension_id, 'YYYY-MM-DD') IS NOT NULL
Mas não ajudou. Como fazer isso?
Você poderia usar uma abordagem regex aqui e combinar o padrão
^[0-9]{4}-[0-9]{2}-[0-9]{2}$
: