SELECT – LIKE

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.

Deixe uma resposta