sukhen dass Ответов: 2

Как "^" или"! 'работает в SQL server с оператором like и wild card(%)


Привет,
Приветствую вас !!
Сегодня кто-то попросил меня решить запрос, чтобы найти все имя учетной записи, которое не содержит " а "нигде в столбце "acname", используя Like opertor, а не использовать "не нравится". Итак, я думал, что мы можем использовать '^' или '!' для решения запроса, но это не сработало.

Я попробовал этот запрос
выберите * from acmast where acname like '%[!a]%'

но не удается разрешить этот запрос с помощью '!'

Итак, мне нужно знать, что я упускаю


с уважением,
Сухен Дасс

Что я уже пробовал:

выберите * from acmast where acname like '%[!a]%'

2 Ответов

Рейтинг:
2

CHill60

Дело в том, что Дэйв делает то, что вы не используете ! или ^, чтобы указать "нет" в SQL, так что вещь, которую вы "упускаете", - это понимание синтаксиса инструмента, который вы пытаетесь использовать.

Существуют различные методы, которые вы можете использовать, чтобы избежать использования не нравится (или не в) вот один пример:

create table demo ([data] varchar(255))
insert into demo ([data]) values
('words without the offending letter'),
('sentence that contains the letter a')

select *
from demo
where patindex('%a%', [data]) = 0
Это возвращение
words without the offending letter

Документация PATINDEX (Transact-SQL) | Microsoft Docs[^]

Альтернативы можно найти через Гугл[^]


sukhen dass

Дело не в том, что у нас есть альтернатива, вопрос в том, возможно ли это использовать ! или ^ или нет

Dave Kreskowiak

Это не то, что говорит ваш вопрос. Он говорит, что вы не понимаете, как можно использовать эти символы. Вот для чего нужна документация, и да, она есть в документе, на который я ссылался.

Рейтинг:
0

Dave Kreskowiak

Это действительно легко понять, если Вы читаете документацию на LIKE:

LIKE (Transact-SQL) | Microsoft Docs[^]


sukhen dass

Я много раз читал эти документы, но не нашел решения, так как нигде не дается использование " %[! anyCharacter]%". только дано либо от первого не нравится('[!anyCharacter]%'), либо от последнего не нравится('%[!anyCharacter]'), но не для полного поиска

Dave Kreskowiak

Чего вам не хватало, так это чтения документации и выполнения тестов для дальнейшего понимания. Поэкспериментируйте с предложениями WHERE. Выясните, как именно эти вещи работают и каковы их пределы.

"То, что вы пробовали" говорит, что вы пробовали только один запрос. Он также говорит, что вы пробовали только с символом "!" в запросе. Читая документацию, этот персонаж даже не упоминается как возможность, которая делает что-то полезное.

"! "даже не используется в качестве автономного оператора любого рода. Google для "операторов TSQL", чтобы узнать.

Это мир проведения тщательных исследований, и это огромная часть работы по разработке.

Да, и чтобы прямо ответить на ваш вопрос, нет, невозможно использовать ^ в подобном выражении, чтобы "не найти символ" нигде в строке.