• Domingo 22 de Diciembre de 2024, 08:08

Autor Tema:  Desconocimiento De Transact Sql  (Leído 3656 veces)

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Desconocimiento De Transact Sql
« en: Viernes 21 de Enero de 2005, 14:12 »
0
Hola,

Necesito hacer un prodecidmiento en Transact SQL (para SQL Server) que sea capaz de manejar strings. ME explico:

Yo hago una Select a una tabla de la base de datos y en uno de sus campos me devuelve lo siguiente:

"W*,Linux,Solaris"

Lo que estoy buscando es una manera de coger ese string y hacerle un split o algo así y dividir el string en tres, es decir, en "W*", "Linux", "Solaris".

El resto de la función no me supone ningun problema, pero lo de partir los strings me trae de cabeza!

Alguna idea?

Gracias de antemano por vuestro interes y tiempo  :)
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Desconocimiento De Transact Sql
« Respuesta #1 en: Sábado 22 de Enero de 2005, 04:03 »
0
no conozco esa herramienta pero normalmente el builtin
SUBSTR te ayuda con eso.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

alexis salinas

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Desconocimiento De Transact Sql
« Respuesta #2 en: Domingo 23 de Enero de 2005, 21:23 »
0
Hacer un split como tal no se puede, pero tal vez si explicas mejor lo que necesitas hacer te pueda ayudar.

Güorker

  • Miembro MUY activo
  • ***
  • Mensajes: 383
    • Ver Perfil
Re: Desconocimiento De Transact Sql
« Respuesta #3 en: Lunes 24 de Enero de 2005, 12:51 »
0
Hola,

lo que necesitaba hacer era cambiar unos valores que tenía en una columna de una tabla de la base de datos, y luego eliminar los elementos repetidos.
Pero despues de consultar la ayuda de SQL Server y un ratito, conseguí solucionar mi problema.

EJ:

Lo que quería hacer es cambiar el valor 'W9x' por los valores 'W95,W98'. Eso en si es muy facil, pero mi problema venia cuando en un registro había los valores: 'W95,W98,W9x'. En este caso, si hiciese el cambio normal, los valores se quedarian repetidos: 'W95,W98,W95,W98'.

Por eso quería algo para poder eliminar los valores repetidos.

Al final opté por la siguiente solución:

En un procedimiento voy recorriendo los registros y voy obteniendo el valor del campo que se carga en @SOs.
Entonces:

SET @SOs = REPLACE ( @SOs , 'W9x' , 'W95,W98' )   --Reemplazo W9x por W95,W98

Y:

SET @SOs = SUBSTRING ( @SOs , 0 , CHARINDEX ( 'W95' , @SOs ) + 3 ) +
         REPLACE ( SUBSTRING ( @SOs , CHARINDEX ( 'W95' , @SOs ) + 3 , 5000 ) , ',W95' , '' )
      SET @SOs = SUBSTRING ( @SOs , 0 , CHARINDEX ( 'W98' , @SOs ) + 3 ) +
         REPLACE ( SUBSTRING ( @SOs , CHARINDEX ( 'W98' , @SOs ) + 3 , 5000 ) , ',W98' , '' )

--Quito los valores repetidos


Gracias por vuestro tiempo e interes, pero ya solucioné mi problema   :comp:
[size=109]Ondo ibili, gutxi gastau eta bueltak amari[/size]
[size=109]Pasalo bien, gasta poco y las vueltas a tu madre[/size]