Du kan erklære en tabelvariabel (eller parameter, hvis den er en del af en procedure eller funktion) og bruge den til not in
del:
DECLARE @NotIn table (
NotInValues int
)
INSERT INTO @NotIn Values
('00009000'),
('00009900'),
('00009906')
og brug det i din kode sådan her:
where [Location Code] between '0000' and '0040'
and [Item No_] not IN (select NotInValues from @NotIn)
and Gutschrift = '1'
and [Document Date] between @Start and @Ende
Bemærk #1: for et stort antal værdier, vil ikke eksisterer sandsynligvis fungere bedre end ikke i
Bemærk #2: Hvis det er en del af en lagret procedure, bliver du nødt til at oprette en brugerdefineret tabeltype og bruge den til at erklære den tabelværdierede parameter. Parametre med tabelværdi er også skrivebeskyttet, så udførelse af DML-sætninger (insert/update/delete) på dem vil give en fejl.
Sådan oprettes udt:
CREATE TYPE IntegerList As Table
(
IntValue int
)
For at erklære det i listen over lagrede procedureparametre:
CREATE PROCEDURE procedureName
(
@IntList dbo.IntegerList READONLY
-- Note that the readonly must be a part of the parameter declaration.
)