On 08/11/11 10:39, Alvaro Herrera wrote:
Excerpts from Rodrigo Ruiz Fuentes's message of mar nov 08 09:46:09 -0300 2011:
Saludos,
tengo una tabla con cuentas y sus respectivos números, y requiero por
ejemplo encontrar todas las cuentas cuyo número comienza con 12, los
siguientes 2 dígitos puede ser cualquier combinación y los restantes
seis deben ser ceros. La búsqueda debiese traerme las cuentas siguientes
por ejemplo:
Lo más preciso que puedes hacer con LIKE es:

LIKE '12__000000'

esto va a aceptar cualquier cosa que tenga otros caracteres en las
posiciones con _ además de dígitos; si tu campo tiene una restricción
que impida almacenar otras cosas deberías estar OK.  De lo contrario
deberías usar una expresión regular con ^12[0-9]{2}0{6}$ como ya indicó
alguien.

Excelente! Efectivamente, y se me olvidó mencionar, que el número debía respetar una estructura y por ello no podía utilizar "LIKE '12%000000'", deben haber 2 digitos en la 3 y 4 posición, para ello me fue util la expresión que entregó Aldo y Alvaro, "numero ~ E'^29[0-9]{2}0{6}' AND numero != '2900000000'" ya que debo quitar además '00' en 3 y 4 posición. Además, desconocía la utilidad del guión bajo (_) en LIKE, muy buena por cierto.
Muchas gracias a todos.

--
Rodrigo Ruiz Fuentes

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a