Я использую SQL Server 2008 Enterprise. Я использую следующий оператор в SQL Server Management Studio как часть процедуры хранилища, и появляется следующая ошибка (ошибка компиляции, когда я нажимаю F5 для запуска процедуры хранения). Но когда я удалил счет (), вся ошибка исчезнет. Любые идеи, что не так со счетом ()? Другой вопрос: моя цель - вернуть общее количество согласованного результата и вернуть часть результата для реализации подкачки (используя tt.rowNum между @startPos и @requireCount + @ startPos-1), любые идеи о том, как реализовать это?Ошибка SQL Server (*)
SELECT *
FROM (SELECT count(*), t.id,t.AdditionalInfo, ROW_NUMBER()
OVER (order by t.id) AS rowNum
FROM dbo.foo t
CROSS APPLY t.AdditionalInfo.nodes('/AdditionalInfo')
AS MyTestXMLQuery(AdditionalInfo)
WHERE
(Tag4=''[email protected]+'' OR Tag5=''[email protected]+'')
and (MyTestXMLQuery.AdditionalInfo.value
('(Item[@Name="Tag1"]/@Value)[1]', 'varchar(50)')
LIKE '%'[email protected]+'%'
or MyTestXMLQuery.AdditionalInfo.value
('(Item[@Name="Tag2"]/@Value)[1]', 'varchar(50)')
LIKE '%'[email protected]+'%'
or MyTestXMLQuery.AdditionalInfo.value
('(Item[@Name="Tag3"]/@Value)[1]', 'varchar(50)')
LIKE '%'[email protected]+'%')) tt
WHERE tt.rowNum between @startPos and @requireCount + @startPos-1
Сообщение об ошибке,
Column 'dbo.foo.ID' is invalid in the select list
because it is not contained in either an aggregate function
or the GROUP BY clause.
No column name was specified for column 1 of 'tt'.
спасибо заранее, Джордж
Count (*) не требуется псевдоним в MS SQL – riwalk
@Star Нет, но столбцы производных таблиц сделать –
@ Мартин, так оно и есть. Узнавайте что-то новое каждый день. Таким образом, он в конечном итоге столкнулся с этой ошибкой, но на данный момент отсутствие GROUP BY - это то, о чем жалуется SQL Studio. – riwalk