Я хотел иметь временную таблицу, которая будет вставлять значения с помощью операторов select. Но каждый раз, когда я запускал запрос, я всегда получал ошибкуПодзапрос возвращает более 1 значения Ошибка SQL при множественном выборе
Подзапрос возвращает более 1 значения. Это недопустимо, когда запрос следует =,! =, <, < =,>,> = или когда подзапрос используется как выражение. Заявление было прекращено. (0 ряд (-ых) затронутых)
Это странно, потому что, похоже, ошибок нет в коде. Но если есть, пожалуйста, поправьте меня.
Вот запрос:
DECLARE @tblKeywords TABLE (Keyword1 VARCHAR(MAX), Keyword2 VARCHAR(MAX), Keyword3 VARCHAR(MAX))
Insert into @tblKeywords (Keyword1, Keyword2, Keyword3)
Values(
(Select k from
(Select Keyword k, ROW_NUMBER() OVER (ORDER BY KeywordID) AS RowNum from t_SMSKeyword) as mytable
where mytable.RowNum BETWEEN 1 and 3),
(Select kk from
(Select Keyword kk, ROW_NUMBER() OVER (ORDER BY KeywordID) AS RowNum from t_SMSKeyword) as mytable
where mytable.RowNum BETWEEN 4 and 6),
(Select kkk from
(Select Keyword kkk, ROW_NUMBER() OVER (ORDER BY KeywordID) AS RowNum from t_SMSKeyword) as mytable
where mytable.RowNum BETWEEN 7 and 9)
)
Select * from @tblKeywords
Вы запускали подзапросы отдельно? Если да, то какой был rowcount для каждого подзапроса? – Romesh
@Brenelyn: У вас есть три подзапроса. Один или несколько из них возвращают несколько строк. Так возникает проблема. Попробуйте запустить каждый подзапрос отдельно, вы найдете проблему. –
Работает нормально, когда я запускал запросы отдельно. Но я хочу получить результаты только в одном запросе, поэтому я могу поместить их в asp: gridview. – Brenelyn