Для нескольких предложений NOT LIKE необходимо AND условия, а не ИЛИ их, например: -
SELECT * FROM trds WHERE
SaleCondition NOT LIKE '%CIHMNQRTUVW7%'
AND SaleCondition NOT LIKE '%7WVUTRQNMHIC%'
AND SaleCondition NOT LIKE '%ABCDEFGHIJK1%' ;
например, если таблица содержит строки, такие как: -
blah CIHMNQRTUVW7 to be excluded
blah CIHMNQRTUVW8 not to be excluded
blah 7WVUTRQNMHIC to be excluded
blah 8WVUTRQNMHIC not to be excluded
blah ABCDEFGHIJK0
blah ABCDEFGHIJK1
blah ABCDEFGHIJK2
Тогда приведенный выше выбор приводит к: -
blah CIHMNQRTUVW8 not to be excluded
blah 8WVUTRQNMHIC not to be excluded
blah ABCDEFGHIJK0
blah ABCDEFGHIJK2
Re Комментарий: -
В столбце SaleCondition есть комбинация нескольких идентификаторов,Я пытаюсь удалить строку, если есть какое-либо из этих значений.
Скажем, таблица содержит: -
blah CIHMNQRTUVW7 to be excluded
blah CIHMNQRTUVW8 not to be excluded
blah 7WVUTRQNMHIC to be excluded
blah 8WVUTRQNMHIC not to be excluded
blah ABCDEFGHIJK0
blah ABCDEFGHIJK1
blah ABCDEFGHIJK2
blah ABCDEFGHIJK0 ABCDEFGHIJK2
blah ABCDEFGHIJK0 ABCDEFGHIJK2 ABCDEFGHIJK1 CIHMNQRTUVW7 CIHMNQRTUVW8 7WVUTRQNMHIC will be excluded
Результат использования запроса:-
blah CIHMNQRTUVW8 not to be excluded
blah 8WVUTRQNMHIC not to be excluded
blah ABCDEFGHIJK0
blah ABCDEFGHIJK2
blah ABCDEFGHIJK0 ABCDEFGHIJK2
Таким образом, последняя строка с несколькими идентификаторами и несколькими идентификаторами, которые должны быть исключены, исключена.
Альтернативой и, возможно, более легкой для логического понимания является использование instr функция (которая может быть более гибкой), она возвращает позицию 1 для первого символа и т. Д. Например, рассмотрим: -
SELECT * FROM trds WHERE
instr(SaleCondition,'CIHMNQRTUVW7')
+ instr(SaleCondition,'7WVUTRQNMHIC')
+ instr(SaleCondition,'ABCDEFGHIJK1')
= 0;
Этот запрос может быть более полезным для понимания, он показывает логику trueили false отдельных проверок, а затем окончательного результата: -
SELECT
SaleCondition NOT LIKE '%CIHMNQRTUVW7%' AS chk1,
SaleCondition NOT LIKE '%7WVUTRQNMHIC%' AS chk2,
SaleCondition NOT LIKE '%ABCDEFGHIJK1%' AS chk3,
SaleCondition NOT LIKE '%CIHMNQRTUVW7%'
AND SaleCondition NOT LIKE '%7WVUTRQNMHIC%'
AND SaleCondition NOT LIKE '%ABCDEFGHIJK1%' AS result FROM trds
chk1 chk2 chk3 result
0 1 1 0
1 1 1 1
1 0 1 0
1 1 1 1
1 1 1 1
1 1 0 0
1 1 1 1
1 1 1 1
0 0 0 0
Таким образом, только если все из первых трех столбцов верны (1), комбинация результатов будет 1из-за ANDS