FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Seleccionar ambito de apellidos por inicial
Hola:
Repito un hilo que tenía ayer y que ha desaparecido ??? FireBird conectado con IBXs. Por ejemplo, el usuario escoge en dos ComboBox listar apellidos desde los que empiezan por A hasta los que empiezan por D. La consulta que tengo y no me selecciona los de la D (en el ejemplo) es esta
Lo que quiero hacer es en vez de comparar todo el apellido, comparar solo la inicial del apellido Algo asi en seudocódigo: 'select ..... where Inicialde(APELLIDOS) Between .......' ¿Cómo se escribiría esto en SQL? Gracias. Un saludo. Última edición por fidel fecha: 23-04-2006 a las 02:13:03. |
#2
|
|||
|
|||
Consulta
Master :
usa la sentencia CONTAING en el where lo que hace es buscar que el contenido de la palabar se encuentre en el dato a buscar ej: select * from clientes where nombre containg "pe" y va a traer todos los registros que tengan pe en su nombre chau Luis Roldan Mar del Plata Argentina |
#4
|
|||
|
|||
Hola:
Aclaro que es una tabla FireBird 1.5 CONTAING me da errror, y además creo que no serviría select * from socios where apellidos between 'A%' and 'D%'; El problema que parece que hay es que no funciona el comodín % Con Like si que funciona el comodín, pero no se como se puede hacer Esto va correcto
Abad Antúnez .... Gil Olmos Esto con comodín % no funciona
Abad Antúnez .... Fuentes Hiniesta ¿Alguna idea?, gracias. Un saludo. Última edición por fidel fecha: 24-04-2006 a las 12:46:43. |
#5
|
|||
|
|||
Cita:
Ahora hice esta otra prueba y obtuve el resultado esperado.
Todas mis pruebas las he hecho con oracle 9.2 Última edición por opardor fecha: 24-04-2006 a las 19:09:05. Razón: Me equivoqué al poner las etiquetas |
#6
|
|||
|
|||
Hola:
Muchas gracias opardor. He hecho la prueba con esto que me indicas
Funciona siempre y cuando haya apellidos con todas las iniciales y la primera o la última de la serie pedida no esté acentuada. Si por el contrario, escojo por ejemplo listar de la A a la Q y no hay apellidos que empiecen por Q no funciona, la consulta queda vacía. Tampoco funciona si por ejemplo pido de la A a la D y el primer apellido es con A acentúada, por ejemplo Álvarez. ¿Alguna otra forma de hacerlo funcionar'. Gracias. Un saludo. |
#7
|
|||
|
|||
prueba con :
select * from socios where apellidos>=:Ldesde and apellidos <:Lhasta||'ZZZZ' la expresión Lhasta||'ZZZZ' es para que seleccione los apellidos de esa letra. Si pones solo :Lhasta los que empiecen por es letra no aparecen. |
#8
|
|||
|
|||
Cita:
Ahora si no existe una inicial por ejemplo la "Q" lo único que tendrías que hacer es agregarla. Estudia la función nvl, aunque no sé si FireBird cuenta con ella. http://www.lc.leidenuniv.nl/awcourse...a96540/toc.htm Tal vez encuentres alguna otra función que se acople más a tus necesidades. |
#9
|
|||
|
|||
Hola:
Con ||Z como comodín funciona perfectamente. Tengo en los combos, puestas en mayúscula, las 29 letras del abecedario español y en varias pruebas que he hecho funciona bien esté o no acentuada la letra inicial, con la ñ, discrimina bien las letras “c “ “ch “, “l “ “ll “ (base de datos y campos Caracter Set ISO8859_1 COLLATE ES_ES) Muchísimas gracias a todos. Un saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Creador de la Web dice que los Weblogs se acercan a su idea inicial de internet | Sasuke_Cub | Noticias | 1 | 27-09-2005 11:15:43 |
Duda con el ámbito de variables | cardomjar | Varios | 6 | 16-03-2005 13:45:52 |
Unir dos campos (nombre + apellidos) | Tomás | Impresión | 8 | 09-02-2004 17:56:32 |
Cuestión de ámbito | jmdd | OOP | 2 | 08-02-2004 06:53:12 |
|