Есть ли способ использовать переменную, чтобы закомментировать строку в предложении where? - PullRequest
0 голосов
/ 27 июня 2019

В моем предложении WHERE есть строка, которая была бы хорошей добавленной возможностью для переключения.Таким образом, конечный пользователь не должен запускать два отчета.Я не нашел ничего подобного, поэтому думаю, что вы не можете, но, возможно, я смотрю на проблему неправильно, а кто-то другой знает лучший способ.

Я попытался запустить приведенный ниже код споследняя строка как @AND и определение переменной как 'AND' & '--', что дает мне неправильную синтаксическую ошибку x2.Я также попытался IS @NULL и определил переменную как 'NULL' & 'NOT NULL', что дало мне неправильную синтаксическую ошибку x2

SELECT 
item_id
FROM 
cba_item_location
WHERE
discontinued='Y'
AND qty_on_hand = '0'
AND (select abc_code from abc_miscdata where abc_code=item_id and abc_type='ITEM' and data_1 ='DISCON_ZERO_SENT') IS NULL

order by item_id

Пример 1:

SELECT 
item_id
FROM 
cba_item_location
WHERE
discontinued='Y'
AND qty_on_hand = '0'
**@AND** (select abc_code from abc_miscdata where abc_code=item_id and abc_type='ITEM' and data_1 ='DISCON_ZERO_SENT') IS NULL

Пример 2:

SELECT 
item_id
FROM 
cba_item_location
WHERE
discontinued='Y'
AND qty_on_hand = '0'
AND (select abc_code from abc_miscdata where abc_code=item_id and abc_type='ITEM' and data_1 ='DISCON_ZERO_SENT') IS **@NULL**

Есть идеи?

1 Ответ

0 голосов
/ 27 июня 2019

Опция 1: динамический SQL

Опция 2: включите флаг в ваше предложение WHERE, которое будет включать и выключать его

DECLARE @and bit = 0
IF (some condition) SET @and = 1  
...
WHERE
discontinued='Y'
AND qty_on_hand = '0'
AND (@and = 1  AND (select abc_code from abc_miscdata where abc_code=item_id and abc_type='ITEM' and data_1 ='DISCON_ZERO_SENT') IS NULL)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...