FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Comparar 2 cadenas con diferentes formatos.
Buenos dias.
Quisiera saber si a alguien se le ocure como comparar 2 cadenas con formatos variables es decir, ilustrando con un ejemplo: Cadena1 = LNNNNNNN (L=LETRA N=NUMERO) Quiero que la condicion se cumpla cuando la Cadena 2 sea = a LNNNNNNN es decir Cadena1=Cadena2 pero TAMBIEN: L-NNNNNNN L NNNNNNN (Con un espacio) Programando en delphi por ej compararia el primer caracter de la cadena y luego los 7 ultimos para "ignorar" de esta forma el espacio guion o ausencia de ambos. Pero no tengo ni idea de como traducir esto en SQL. Gracias a todos. Y fuerza a los que vuelven de vacaciones |
#2
|
|||
|
|||
Comparar Cadenas en SQL
Hola:
Por lo que entendi de tu explicacion pudieras utilizar like'L%' Saludos Luis Garcia |
#3
|
|||
|
|||
No me sirve el Like'L%'
Porque entonces me encierro en caracter 'L' y lo que sea... Que que quiero yo es comparar 2 cadenas y que me cumpla el requesito cuando la primera letra es identica (pudiendose ser cualkier letra, y no una definida) y los 7 ultimos caracteres sean 7numeros identicos entre ellos. por lo cual cumpliria los requisitos en estos diferentes casos: 'A0000000' comparado con 'A-0000000' 'A 0000000' comparado por 'A 0000000' y no lo cumpiria en estos: 'A0000000' comparado con 'B0000000' 'A0000000' comparado con 'A-0000001' |
#4
|
|||
|
|||
¿Y por qué no transformas a un formato siempre igual las cadenas que te introducen? Así te evitas ese paso.
|
#5
|
|||
|
|||
Pues porque la BD esta echa ya... y no tengo ni voz ni voto ^^
Con lo facil que seria formatear a la entrada... Estamos 100% de acuerdo. Entonces nadie sabria como comparar por ejemplo de 2 cadenas en SQL que 1-El primer caracter sea igual 2-que los 7 ultimos tmb lo sean? para que se de el caso ANNNNNNN = ANNNNNNN ANNNNNNN = A NNNNNNN ANNNNNNN = A-NNNNNNN |
#6
|
|||
|
|||
si usas firebird, con UDFs
Hola
si usas firebird (y supongo que interbase tambien) puedes compilar la UDF substr * Functional description: * substr(s,m,n) returns the substring * of s which starts at position m and * ending at position n. * Note: This function is NOT limited to * receiving and returning only 255 characters, * rather, it can use as long as 32767 * characters which is the limit on an * INTERBASE character string. * Change by Claudio Valderrama: when n>length(s), * the result will be the original string instead * of NULL as it was originally designed. y con esta podrias hacerlo dentro de una consulta sql Saludos Pablo |
#7
|
|||
|
|||
en firebird 2 ...
En firebir 2 no es necesario compilar la UDF substr
ya viene substring no se en firebird 1.5.... SUBSTRING('ANNNNNNN' from 1 for 1) retorna A SUBSTRING('A NNNNNNN' from 3 for 7) retorna NNNNNNN con esto deberias poder realizar tu consulta Saludos Pablo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Comparar dos cadenas de texto | creus | Varios | 5 | 06-03-2009 00:22:13 |
Comparar cadenas de un txt | francisco260184 | Varios | 1 | 10-04-2007 23:54:22 |
DBMemo con diferentes formatos | Colgueit | OOP | 3 | 29-01-2007 21:56:23 |
Unir base de datos en diferentes formatos | rbeltran | Conexión con bases de datos | 1 | 12-01-2005 21:37:37 |
Unir base de datos en diferentes formatos | rbeltran | Conexión con bases de datos | 0 | 16-12-2004 20:06:40 |
|