none
COMO EXTRAER DE UN CAMPO STRING SOLO la parte del lado derecho q esta separada en comas RRS feed

  • Pregunta

  • Holas

    tengo una función que devuelve data asi:

    Riesgo mínimo|255,255,0
    Riesgo alto|255,0,0
    Riesgo mínimo|255,255,0

    Normal|0,255,0

    Riesgo critico|0,0,0

    y yo quisiera obtener los numeros,

    el 255,255,0

    o el 0,0,0

    o,255,0,0

    osea los numeros q  estan entre las comas y qson del lado derecho?

    como podria hacerlo?

    es q necesito esos numero para darle el color

    gracias

    slds


    Desarrolladora

    lunes, 16 de julio de 2012 17:13

Respuestas

  • Hola Rosita

    Trata esto:

    select right(<funcion>, len(<funcion> - charindex('|',<funcion>))

    Saludos,

    Monica


    This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread.

    • Marcado como respuesta Rosita_Lima miércoles, 18 de julio de 2012 15:13
    lunes, 16 de julio de 2012 17:31
    Moderador
  • Hay unas cuantas formas de lograr lo que deseas. Lo mas importante es que estes familiarizada con las funciones de tratamiento de cadenas, como son:

    - SUBSTRING

    - LEFT

    - RIGHT

    - REVERSE

    - CHARINDEX

    - PATINDEX

    - STUFF

    Aca te dejo un ejemplo.

    USE tempdb;
    GO
    WITH R AS (
    SELECT c1
    FROM 
    	(
    	VALUES 
    		('Riesgo mínimo|255,255,0'),
    		('Riesgo alto|255,0,0'),
    		('Riesgo mínimo|255,255,0')
    	) AS T(c1)
    )
    SELECT
    	c1,
    	STUFF(c1, 1, CHARINDEX('|', c1), '') AS c2
    FROM
    	R;
    GO


    AMB

    Some guidelines for posting questions...

    • Marcado como respuesta Rosita_Lima miércoles, 18 de julio de 2012 15:13
    lunes, 16 de julio de 2012 19:01
  • SELECT SUBSTRING(campo, CHARINDEX('|',campo)+1, LEN(campo))
    FROM tabla


    • Marcado como respuesta Rosita_Lima miércoles, 18 de julio de 2012 15:13
    lunes, 16 de julio de 2012 21:58

Todas las respuestas

  • Substring().

    Jose R. MCP
    Code Samples


    • Editado webJose lunes, 16 de julio de 2012 17:28
    lunes, 16 de julio de 2012 17:28
  • Hola Rosita

    Trata esto:

    select right(<funcion>, len(<funcion> - charindex('|',<funcion>))

    Saludos,

    Monica


    This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click "Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread.

    • Marcado como respuesta Rosita_Lima miércoles, 18 de julio de 2012 15:13
    lunes, 16 de julio de 2012 17:31
    Moderador
  • Hay unas cuantas formas de lograr lo que deseas. Lo mas importante es que estes familiarizada con las funciones de tratamiento de cadenas, como son:

    - SUBSTRING

    - LEFT

    - RIGHT

    - REVERSE

    - CHARINDEX

    - PATINDEX

    - STUFF

    Aca te dejo un ejemplo.

    USE tempdb;
    GO
    WITH R AS (
    SELECT c1
    FROM 
    	(
    	VALUES 
    		('Riesgo mínimo|255,255,0'),
    		('Riesgo alto|255,0,0'),
    		('Riesgo mínimo|255,255,0')
    	) AS T(c1)
    )
    SELECT
    	c1,
    	STUFF(c1, 1, CHARINDEX('|', c1), '') AS c2
    FROM
    	R;
    GO


    AMB

    Some guidelines for posting questions...

    • Marcado como respuesta Rosita_Lima miércoles, 18 de julio de 2012 15:13
    lunes, 16 de julio de 2012 19:01
  • SELECT SUBSTRING(campo, CHARINDEX('|',campo)+1, LEN(campo))
    FROM tabla


    • Marcado como respuesta Rosita_Lima miércoles, 18 de julio de 2012 15:13
    lunes, 16 de julio de 2012 21:58
  • SELECT SUBSTRING(campo, CHARINDEX('|',campo)+1, LEN(campo))
    FROM tabla



    hola, necesito lo mismo pero lo que traiga lo que esta a la izquierda de la coma...
    jueves, 7 de septiembre de 2017 17:02
  • Preferible que habras una pregunta nueva y no que continues una ya cerrada.

    Trata:

    WITH R AS (
    SELECT T1.c1, T2.pos
    FROM 
    	(
    	VALUES 
    		('Riesgo mínimo|255,255,0'),
    		('Riesgo alto|255,0,0'),
    		('Riesgo mínimo|255,255,0'),
    		('Ningun Riesgo')
    	) AS T1(c1)
    	CROSS APPLY
            (VALUES (CHARINDEX('|', c1))) AS T2(pos)
    )
    SELECT
    	c1,
    	CASE
    	WHEN pos > 0 THEN LEN(c1, pos - 1) -- STUFF(c1, pos, LEN(c1), '')
    	ELSE c1
    	END AS c2
    FROM
    	R;



    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas




    • Editado HunchbackMVP jueves, 7 de septiembre de 2017 18:01
    jueves, 7 de septiembre de 2017 17:14
  • Para cualquier caso podrías intentar:

    WITH R AS (
    SELECT c1
    FROM 
    	(
    	VALUES 
    		('Riesgo mínimo|255,255,0'),
    		('Riesgo alto|255,0,0'),
    		('Riesgo mínimo|255,255,0'),
    		('Ningún riesgo')
    	) AS T(c1)
    )
    SELECT
    	c1,
    	STUFF(c1, CHARINDEX('|', c1), LEN(c1), '') AS c2,
    	SUBSTRING(c1, 1, PATINDEX('%|%', c1 + '|')-1) AS c3
    FROM
    	R;
    GO
    


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    jueves, 7 de septiembre de 2017 17:31