Подобный запрос не работает, когда я использую символ «?»

#sql #sql-server

#sql #sql-сервер

Вопрос:

Мой SQL-запрос выглядит следующим образом

 create table Manager(id int, managerid varchar(3) , managername varchar(50))

insert into Manager(id,managerid,managername)values(123,'A12','Mangesh')
insert into Manager(id,managerid,managername)values(54321,'A23','Sagar')
insert into Manager(id,managerid,managername)values(334,'C34','Ahmad')
insert into Manager(id,managerid,managername)values(456,'A45','Mango')
insert into Manager(id,managerid,managername)values(567,'B56','Sandesh')
  

мой Подобный запрос заключается в следующем

 select * from Manager where id LIKE 'C21%'
  

этот запрос выдает мне эту запись

 id     managerid  managername 
54321  A23        Sagar
  

но когда я пытаюсь выполнить такой запрос, он не выдает мне никакой записи, т. е. нулевого количества записей, но на самом деле есть одна запись
Запрос :

 select * from Manager where id LIKE '%?4321%'
  

что в этом плохого?

sql fiddle sql query

Комментарии:

1. ? вот почему это специальный символ, и, во-вторых, в вашей базе данных нет данных, которые содержат ?4321

2. выберите * в диспетчере, где идентификатор ТИПА «%?4321%», почему «?» есть?

3. Я думаю, вы хотите использовать _ не ? . Подчеркивание — это любой отдельный символ.

4. @ArijitMukherjee ? не является специальным символом.

5. нет записи для ‘%?4321%’ — насколько я могу видеть во вставках

Ответ №1:

_ Не ? используйте для подстановочного знака, указывающего «любой отдельный символ».

Ответ №2:

Попробуйте это:

 SELECT * FROM Manager WHERE id LIKE '%_4321%'