ASP - SUBSTRING con NOT IN en consulta SQL

   
Vista:

SUBSTRING con NOT IN en consulta SQL

Publicado por J@m (41 intervenciones) el 30/04/2012 22:02:48
Hola, estoy tratando de hacer este tipo de consulta:

acumpedido=7654,7863,7435,5633

where SUBSTRING((campo,1,4) not in("&acumpedido&"))

Donde me seleccione los 4 primero caracteres de un campo "campo" pero que no esten incluidos los campos separados por coma "acumpedido"

Gracias, J@m
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

SUBSTRING con NOT IN en consulta SQL

Publicado por Santos Pairazamán Flores (415 intervenciones) el 03/05/2012 23:13:05
Create esta funcion en el sql:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Create FUNCTION Split(@String nvarchar(4000), @Delimiter char(1))
RETURNS @Results TABLE (Items nvarchar(4000))
AS
    BEGIN
    DECLARE @INDEX INT
    DECLARE @SLICE nvarchar(4000)
    SELECT @INDEX = 1
    IF @String IS NULL RETURN
 WHILE @INDEX !=0
        BEGIN
         SELECT @INDEX = CHARINDEX(@Delimiter,@STRING)
         IF @INDEX !=0
          SELECT @SLICE = LEFT(@STRING,@INDEX - 1)
         ELSE
          SELECT @SLICE = @STRING
         INSERT INTO @Results(Items) VALUES(@SLICE)
         SELECT @STRING = RIGHT(@STRING,LEN(@STRING) - @INDEX)
         IF LEN(@STRING) = 0 BREAK
    END
    RETURN
END

La forma de llamar a esta función es así:

declare @acumpedido varchar(50)
set @dato ='7654,7863,7435,5633'

select * from split(@acumpedido ,',')

Esto te devolverá una lista con todos los datos en forma de columnas y puedes preguntar así :
where SUBSTRING((campo,1,4) not in("& acumpedido &"))


Esto lo puedes hacer desde el mismo SQL.

Espero t sirva.
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