Bases de Datos - extraccion de iniciales

   
Vista:

extraccion de iniciales

Publicado por Wilson (3 intervenciones) el 24/05/2017 18:36:43
Hola amigos! tengo una consulta. soy algo nuevo en esto de bases de datos y estoy tratando de sacar las iniciales un nombre almacenado en un registro dentro de mi base de datos. Puede que sea algo sencillo pero no le encuentro pies ni cola como realizarlo...

Tengo una tabla usuarios, en ella tengo estos 3 nombres:

Juan Perez
Carlos Alverto Urritia
Sonia Maria Valencia

Estoy buscando que la impresion me devuelva alco como lo siguiente

Juan P
Carlos AU
Sonia MV

Intente usar trim pero eso me elimina una letra o posicion espeficica y en una cantidad grande de registro eso no me funciona.. Que me recomeniendan para este caso?

Saludos y gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

extraccion de iniciales

Publicado por kip (3 intervenciones) el 24/05/2017 18:56:27
Hola, podrias decirnos que motor de base de datos estas usando ? MySQL, SQLSVR.. ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

extraccion de iniciales

Publicado por Wilson (3 intervenciones) el 24/05/2017 19:50:39
Perdon.
Estoy usando mysql
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

extraccion de iniciales

Publicado por kip (3 intervenciones) el 25/05/2017 06:26:23
Entiendo, he creado una tabla llamada test con los datos que colocaste, la tabla seria:

1
2
3
4
5
6
7
8
+------------------------+
| usuario                |
+------------------------+
| Juan Perez             |
| Carlos Alverto Urritia |
| Sonia Maria Valencia   |
+------------------------+
3 rows in set

Ahora con esos datos probaremos un codigo que hice para que muestre lo que deseas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
SELECT
    TRIM(
        CONCAT(
            SUBSTRING_INDEX(usuario, " ", 1),
            ' ',
 
        IF (
            LENGTH(
                SUBSTR(
                    usuario,
                    LENGTH(
                        SUBSTRING_INDEX(usuario, " ", 1)
                    ) + 2,
                    1
                )
            ),
            SUBSTR(
                usuario,
                LENGTH(
                    SUBSTRING_INDEX(usuario, " ", 1)
                ) + 2,
                1
            ),
            ''
        ),
 
    IF (
        LENGTH(
            SUBSTR(
                usuario,
                LENGTH(
                    SUBSTRING_INDEX(usuario, " ", 2)
                ) + 2,
                1
            )
        ),
        SUBSTR(
            usuario,
            LENGTH(
                SUBSTRING_INDEX(usuario, " ", 2)
            ) + 2,
            1
        ),
        ''
    )
        )
    ) AS 'Usuario'
FROM
    test;

Nos mostraria algo asi:

1
2
3
4
5
6
7
8
+------------+
| Usuario    |
+------------+
| Juan P     |
| Carlos AU |
| Sonia MV  |
+------------+
3 rows in set

Prueba el codigo y nos avisas si te funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

extraccion de iniciales

Publicado por Wilson (3 intervenciones) el 25/05/2017 17:37:20
Excelente!! Habia logrado sacar solo nombre y una inicial, luego se cortaba el proceso.
Este ejemplo esta 1000 veces mucho mejor.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad