SQL - string_split sql server 2012

 
Vista:
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 04/09/2019 20:47:56
necesito ayuda para descomponer caracteres cuando haya una coma
1
2
3
4
5
create trigger TR_INSERTAR
ON CLIENTES
FOR INSERT AS
DECLARE @A VARCHAR(50)
SELECT @A = PRODUCTOS FROM INSERTED

ES PARA UNA TAREA ESCOLAR NO TENGO IDEA DE COMO HACERLO
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 05/09/2019 20:43:41
ya pude solucionarlo por si alguna persona tiene el mismo problema aqui les dejo la solucion


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DECLARE
  @strCadena VARCHAR(255),
  @strValor VARCHAR(6),
  @intBandera BIT,
  @intTamano SMALLINT
 
SET @strCadena = '111,215,19,8,202,99,2341,12,236'
SET @intBandera = 0
 
WHILE @intBandera = 0
BEGIN
  BEGIN TRY
    SET @strValor = RIGHT(LEFT(@strCadena,CHARINDEX(',', @strCadena,1)-1),CHARINDEX(',', @strCadena,1)-1)
    PRINT @strValor /* En esta variable se guarda un número */
    SET @intTamano = LEN(@strValor)
 
    SET @strCadena = SUBSTRING(@strCadena,@intTamano + 2, LEN(@strCadena))
  END TRY
  BEGIN CATCH
    PRINT @strCadena
    SET @intBandera = 1
  END CATCH
END
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 06/09/2019 00:45:36
¿Donde esta utlizando STRING_SPLIT?

1
2
3
4
DECLARE
@strCadena VARCHAR(255)
SET @strCadena = '111,215,19,8,202,99,2341,12,236'
SELECT * FROM  STRING_SPLIT (@strCadena,',')
Captura
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 06/09/2019 17:39:16
lo siento pero tu codigo no me funciona

Msg 208, Level 16, State 1, Line 4
Invalid object name 'STRING_SPLIT'.
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 06/09/2019 20:14:41
No, porque es para la version 2016, lo que me confundio, fue tu TITULO string_split sql server 2012:

Veamos
1
2
3
4
5
DECLARE @xml xml, @str varchar(100), @delimiter varchar(10)
SET @str = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15'
SET @delimiter = ','
SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml)
SELECT C.value('.', 'varchar(10)') as value FROM @xml.nodes('X') as X(C)

Otra version

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DECLARE @str varchar(100), @delimiter varchar(10)
SET @str = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15'
SET @delimiter = ','
;WITH cte AS
(
    SELECT 0 a, 1 b
    UNION ALL
    SELECT b, CHARINDEX(@delimiter, @str, b) + LEN(@delimiter)
    FROM CTE
    WHERE b > a
)
SELECT SUBSTRING(@str, a,
CASE WHEN b > LEN(@delimiter)
    THEN b - a - LEN(@delimiter)
    ELSE LEN(@str) - a + 1 END) value
FROM cte WHERE a > 0
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 09/09/2019 18:06:21
ok funcionan ambos codigos ,ahora como se utilizaria en un trigger para insertar registros y guargarlos resultados en una tabla
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 09/09/2019 19:23:17
Los triggers no fueron diseñados para codificar la logica del negocio, desde un inicio, cuidaban el DRI (declarativa de integridad), debe hacerlo mediante un procedimiento almacenado
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 09/09/2019 19:46:46
ok ,como se guardan los resultados en una tabla ,necesito esos datos para hacer una consulta
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 09/09/2019 22:50:03
Si dice que ya probo los dos codigos y funcionan, solo le faltaria colocar el INSERT de su tabla
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 10/09/2019 18:13:47
Lo intente pero no pude me aparece un error

DECLARE @xml xml, @str varchar(100), @delimiter varchar(10),@S varchar(100)
SET @str = 'NT00101,TZ00014,CT00001,DM00016'
SET @delimiter = ','
SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml)
SELECT C.value('.', 'varchar(10)') as asd FROM @xml.nodes('X') as X(C)
insert into descomponer values (@xml);


Msg 257, Level 16, State 3, Line 6
Implicit conversion from data type xml to varchar is not allowed. Use the CONVERT function to run this query.
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 10/09/2019 18:53:25
Pasame la descripcion de tu tabla DESCOMPONER

Yo hago este test y funciona

1
2
3
4
5
6
7
8
DECLARE @TABLE TABLE (COLUMNA XML)
DECLARE @xml xml, @str varchar(100), @delimiter varchar(10),@S varchar(100)
SET @str = 'NT00101,TZ00014,CT00001,DM00016'
SET @delimiter = ','
SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml)
INSERT INTO @TABLE
SELECT C.value('.', 'varchar(10)') as asd FROM @xml.nodes('X') as X(C)
select * from @TABLE

COLUMNA
NT00101
TZ00014
CT00001
DM00016
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 10/09/2019 18:59:17
SOLAMENTE CUENTA CON UN CAMPO LLAMADA CARACTERES ,TIPO DE DATO VARCHAR(50)
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 10/09/2019 19:31:53
lo intente hacer pero me marca error

1
2
3
4
5
6
7
8
9
DECLARE @TABLE TABLE (descomponer XML)
DECLARE @xml xml, @str varchar(100), @delimiter varchar(10),@S varchar(100)
SET @str = 'NT00101,TZ00014,CT00001,DM00016'
SET @delimiter = ','
SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml)
INSERT INTO @TABLE
SELECT C.value('.', 'varchar(10)') as asd FROM @xml.nodes('X') as X(C)
INSERT INTO descomponer
select * from @TABLE



Msg 257, Level 16, State 3, Line 8
Implicit conversion from data type xml to varchar is not allowed. Use the CONVERT function to run this query.
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 10/09/2019 20:28:10
Tienes que hacer un CAST o CONVERSION

1
2
3
4
5
6
7
8
9
DECLARE @TABLE TABLE (descomponer XML)
DECLARE @xml xml, @str varchar(100), @delimiter varchar(10),@S varchar(100)
SET @str = 'NT00101,TZ00014,CT00001,DM00016'
SET @delimiter = ','
SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml)
INSERT INTO @TABLE
SELECT CAST(C.value('.', 'varchar(10)') AS VARCHAR(50)) as asd FROM @xml.nodes('X') as X(C)
INSERT INTO descomponer
select * from @TABLE
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 10/09/2019 21:58:31
sql


lo intente pero no me sale bien
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 10/09/2019 22:06:29
No amigo, siga las instrucciones, de lo contrario nunca va a resolver su problema, vea que mi COLUMNA es un nvarchar(50)
1
2
3
4
5
6
7
8
DECLARE @TABLE TABLE (COLUMNA nvarchar(50))
DECLARE @xml xml, @str varchar(100), @delimiter varchar(10),@S varchar(100)
SET @str = 'NT00101,TZ00014,CT00001,DM00016'
SET @delimiter = ','
SET @xml = cast(('<X>'+replace(@str, @delimiter, '</X><X>')+'</X>') as xml)
INSERT INTO @TABLE
SELECT cast(C.value('.', 'varchar(10)') as varchar(50)) as asd FROM @xml.nodes('X') as X(C)
select * from @TABLE
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 11/09/2019 17:24:20
muchas gracias ya lo pude realizar ,la entrega es mañana por lo que fue justo a tiempo gracias de nuevo
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 11/09/2019 17:45:27
De nada, un placer, suerte, saludos
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 11/09/2019 19:48:22
disculpe la molestia,si quiero agregar los resultados a una tabla con mas columnas como seria el codigo
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 11/09/2019 22:49:06
¿De donde tomaria esos MAS resultados?
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 12/09/2019 17:20:34
as

como se observa en la imagen debo tomar todos esos campos y descomponer Nombre_de_producto y Skus los demas campos seguirian igual,mi profesor esta loco cada vez nos pone cosas mas complicadas y nunca nos enseña nada
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 12/09/2019 18:40:41
¿PROFESOR?

O sea que estoy resolvidendo algun tipo de TAREA...

Haga un SELECT TOP 10 * FROM SuTabla y muestreme el resultado
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
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por jose (17 intervenciones) el 12/09/2019 19:56:55
ya pude solucionarlo ,perdon por la molestia
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

string_split sql server 2012

Publicado por Isaias (1921 intervenciones) el 12/09/2019 22:49:49
De nada, saludos
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