Anda dapat mendeklarasikan variabel tabel (atau parameter jika itu adalah bagian dari prosedur atau fungsi) dan menggunakannya untuk not in
bagian:
DECLARE @NotIn table (
NotInValues int
)
INSERT INTO @NotIn Values
('00009000'),
('00009900'),
('00009906')
dan gunakan dalam kode Anda seperti ini:
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
Catatan #1: untuk sejumlah besar nilai, tidak ada mungkin akan berkinerja lebih baik daripada tidak di
Catatan #2: Jika itu adalah bagian dari prosedur tersimpan, Anda perlu membuat tipe tabel yang ditentukan pengguna, dan menggunakannya untuk mendeklarasikan parameter nilai tabel. Selain itu, parameter bernilai tabel bersifat hanya-baca, sehingga menjalankan pernyataan DML (masukkan/perbarui/hapus) pada parameter tersebut akan menimbulkan kesalahan.
Untuk membuat udt:
CREATE TYPE IntegerList As Table
(
IntValue int
)
Untuk mendeklarasikannya dalam daftar parameter prosedur tersimpan:
CREATE PROCEDURE procedureName
(
@IntList dbo.IntegerList READONLY
-- Note that the readonly must be a part of the parameter declaration.
)