#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.
?
вот почему это специальный символ, и, во-вторых, в вашей базе данных нет данных, которые содержат ?43212. выберите * в диспетчере, где идентификатор ТИПА «%?4321%», почему «?» есть?
3. Я думаю, вы хотите использовать
_
не?
. Подчеркивание — это любой отдельный символ.4. @ArijitMukherjee
?
не является специальным символом.5. нет записи для ‘%?4321%’ — насколько я могу видеть во вставках
Ответ №1:
_
Не ?
используйте для подстановочного знака, указывающего «любой отдельный символ».
Ответ №2:
Попробуйте это:
SELECT * FROM Manager WHERE id LIKE '%_4321%'