Primer letra de cada palabra mysql hasta 6 caracteres
Publicado por CRISTIAN JAVIER DE LUCA (2 intervenciones) el 09/09/2020 22:06:44
Buenas tardes, les dejo una consulta realizada por mi, para compartir con el foro. La misma no la he encontrado en ninguna web, y me ha servido de mucho para sacar por ejemplo la primer letra de una tabla de tipos de comprobantes. La tabla consta básicamente de dos campos, el primero es un campo con codificación de hasta 5 dígitos numéricos, la segunda es una descripción del tipo comprobante relacionado con cada código del campo 1 en forma única.
Un ejemplo de esa tabla es como sigue:
tipo descripcion
010 NOTAS DE VENTA AL CONTADO B
024 CPTES A DE COSIGNACION PRIMARIA PARA EL SECTOR PESQUERO MARITIMO
Les dejo una consulta armada que muestra el primer caracter de cada palabra, hasta la sexta.
La idea es si alguien cree que se puede mejorar, compartir tambien la mejora que propone.
Y un resultado esta consulta es:
para el registro 010:
NDVACB
para el registro 024:
CADCPP
Espero les sriva.
Saludos!.
Un ejemplo de esa tabla es como sigue:
tipo descripcion
010 NOTAS DE VENTA AL CONTADO B
024 CPTES A DE COSIGNACION PRIMARIA PARA EL SECTOR PESQUERO MARITIMO
Les dejo una consulta armada que muestra el primer caracter de cada palabra, hasta la sexta.
La idea es si alguien cree que se puede mejorar, compartir tambien la mejora que propone.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT concat(
substring(SUBSTRING_INDEX(descripcion,' ',1), 1,1),
substring(SUBSTRING_INDEX((ltrim(mid(descripcion,locate(' ', descripcion)))),' ',1), 1,1),
substring(SUBSTRING_INDEX((ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2))))),' ',1), 1,1),
substring(SUBSTRING_INDEX((ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2))))),' ',1), 1,1),
substring(SUBSTRING_INDEX((ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2)))),2))))),' ',1), 1,1),
substring(SUBSTRING_INDEX((ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2)))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2),locate(' ', substring(ltrim(mid(substring(ltrim(mid(descripcion,locate(' ', descripcion))),2),locate(' ', substring(ltrim(mid(descripcion,locate(' ', descripcion))),2)))),2)))),2)))),2))))),' ',1), 1,1)
)
from
tipocomprobantes;
Y un resultado esta consulta es:
para el registro 010:
NDVACB
para el registro 024:
CADCPP
Espero les sriva.
Saludos!.
Valora esta pregunta


0