#sql #sql-server #stored-procedures #mysqli #plsql
#sql #sql-сервер #хранимые процедуры #mysqli #plsql
Вопрос:
- У меня есть таблица tblroute_details
-
Я хочу найти между местами, я использовал этот запрос
SELECT (placeName) FROM tblRouteDetails WHERE ID Between ( SELECT ID FROM tblRouteDetails WHERE placeName = 'Kaushambi' ) AND (SELECT ID FROM tblRouteDetails WHERE placeName = 'Ghaziabad')
ПОРЯДОК ПО идентификатору
Выдает ошибку
Msg 512, Level 16, State 1, Line 3
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Ответ №1:
SELECT id, placeName FROM tblRouteDetails
WHERE placeName in ('Kaushambi','Ghaziabad')
ORDER BY ID
Комментарии:
1. он выдает только верхние записи 1, мне нужны обе записи
2. для чего вам нужны места между ‘Kaushambi’ и ‘Kaushambi’
3. Мне нужны все те места, которые я ввел
4. наличие какого-либо конкретного условия
5. в соответствии с именем места, которое я ввел
Ответ №2:
У вас более 1 строки с placeName = 'Kaushambi'
и placeName = 'Ghaziabad'
, и именно поэтому вы получаете ошибку.
Попробуйте с этим:
SELECT placeName
FROM tblRouteDetails
WHERE ID Between
(SELECT MIN(ID) FROM tblRouteDetails WHERE placeName = 'Kaushambi')
AND
(SELECT MAX(ID) FROM tblRouteDetails WHERE placeName = 'Ghaziabad')
AND placeName <> 'Kaushambi' AND placeName <> 'Ghaziabad'
ORDER BY ID
Ответ №3:
Вложенный запрос SELECT ID FROM tblRouteDetails WHERE placeName = 'Ghaziabad'
и SELECT ID FROM tblRouteDetails WHERE placeName = 'Kaushambi'
вернет более одной записи. Попробуйте
SELECT ( placename )
FROM tblroutedetails
WHERE id BETWEEN (SELECT id
FROM tblroutedetails
WHERE placename = 'Kaushambi'
LIMIT 1) AND
(SELECT id
FROM tblroutedetails
WHERE placename = 'Ghaziabad'
LIMIT 1)
ORDER BY id
хорошо, я ввожу названия мест Каушамби и Газиабад, я хочу ИДЕНТИФИКАТОР, имя места 9
Каушамби 10 Газиабад 28 Каушамби 29 Газиабад
SELECT id, placeName FROM tblroutedetails
WHERE placeName RLIKE 'Kaushambi|Ghaziabad'
ORDER BY id