Bem,
depois de passar pelo between, in e outros operadores lógicos ( <=, >=, = ,< , > , … ) cheguei num cara interessante: LIKE
Se voce mexe com BD certamente já ouviu falar nesse cara. Basicamente é usado para procurar colunas que tenham um determinado segmento de chars. ex:
SELECT * FROM ALL_TABLES WHERE TABLE_NAME LIKE ‘DU%’
O exemplo acima irá retornar a tabela DUAL.
Observe o %, ele representa qualquer sequencia de chars! seria como um * no windows ou linux. Ele pode representar nenhum char tambem!
SELECT * FROM ALL_TABLES WHERE TABLE_NAME LIKE ‘DUAL%’
Vai retornar a mesma coisa 🙂
mas e se eu nao souber apenas um char de uma string?
Imagine o seguinte, dentre os valores de uma coluna eu tenho t1,t10,t11,t2,t20,t21 e destes eu quero apenas aqueles com dois digitos.
Se eu utilizar … LIKE ‘T%’ todos os valores serão retornados.
Logo, existe uma outra forma de comparação no like: “_”
neste caso poderíamos excrever a seguinte query
SELECT * FROM ALL_TABLES WHERE TABLE_NAME LIKE ‘D__L’
e o resultado seria a tabela “DUAL”. Observe que o “_” representa apenas um char. Logo coloquei duas vezes na query para encontrar o UA do dual.