Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Consultar un campo con una variable que tenga dos o mas datos!!

Estas en el tema de Consultar un campo con una variable que tenga dos o mas datos!! en el foro de SQL Server en Foros del Web. Soy nuevo en esto del sql server. Explico a ver si logro hacerlo bien :).. Tengo una vista que tiene los campos de cosdigo,descripcion,medida,ubicacion y ...
  #1 (permalink)  
Antiguo 30/06/2014, 15:32
 
Fecha de Ingreso: junio-2014
Ubicación: D.F.
Mensajes: 42
Antigüedad: 10 años, 4 meses
Puntos: 0
Consultar un campo con una variable que tenga dos o mas datos!!

Soy nuevo en esto del sql server. Explico a ver si logro hacerlo bien :)..
Tengo una vista que tiene los campos de cosdigo,descripcion,medida,ubicacion y numero de almacen. Me piden un reporte de esa vista, el problema es que pueden meter dos o mas campos de ubicacion en una variable, vamos tengo el campo de texto ubicacion y en el el usuario deberia poder meter varias ubicaciones, entonces cuando lo lleve al sql server la variable traera todos los campos que le metio el usuario, y no resolver ese problema.
Espero que lo haya planteado bien, y de antemano muchas gracias!!
  #2 (permalink)  
Antiguo 30/06/2014, 16:00
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consultar un campo con una variable que tenga dos o mas datos!!

Yo tratar de responder lo que tu preguntar, tratar de usar esto:

Código SQL:
Ver original
  1. CREATE FUNCTION [dbo].[SplitApplication](@applicationid VARCHAR(2000))
  2.  
  3. RETURNS @RtnValue TABLE
  4. (
  5. Id INT IDENTITY(1,1),
  6. DATA nvarchar(100)
  7. )
  8. AS
  9. BEGIN
  10. DECLARE @Cnt INT, @SplitOn nvarchar(5)
  11. SET @SplitOn = ','
  12. SET @Cnt = 1
  13.  
  14. While (Charindex(@SplitOn,@applicationid)>0)
  15. BEGIN
  16. INSERT INTO @RtnValue (DATA)
  17. SELECT
  18. DATA = ltrim(rtrim(SUBSTRING(@applicationid,1,Charindex(@SplitOn,@applicationid)-1)))
  19.  
  20. SET @applicationid = SUBSTRING(@applicationid,Charindex(@SplitOn,@applicationid)+1,len(@applicationid))
  21. SET @Cnt = @Cnt + 1
  22. END
  23.  
  24. INSERT INTO @RtnValue (DATA)
  25. SELECT DATA = ltrim(rtrim(@applicationid))
  26.  
  27. RETURN
  28. END
  29.  
  30. GO
  31.  
  32.  
  33. how TO USE :
  34.  
  35. SELECT * FROM TABLE WHERE DATA IN (
  36.  
  37. SELECT DATA FROM SplitApplication('1,1,1,1')
  38. )
  39.  
  40. como la usarias en tu ejemplo:
  41.  
  42. SELECT * FROM tabla D WHERE ubicacion IN (SELECT DATA FROM SplitApplication('ubicacion1,ubicacion2,ubicacion3'))

preguntar si tu no entender.....yo responder
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 30/06/2014 a las 16:06

Etiquetas: campo, consultar, server, sql, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.