Я использую функцию ROW_NUMBER()
в SQL Server для создания нового столбца с именем RowNumber
.
Но когда я позже в том же запросе ссылаюсь на это новое поле в операторе WHERE
, я получаю эту ошибку, хотя поле должно быть целым числом:
Ошибка преобразования при преобразовании значения varchar 'RowNumber' в тип данных int
Вот мой запрос:
SELECT
ROW_NUMBER() OVER(PARTITION BY c.Node_base ORDER BY sum(c.Score) DESC) AS "RowNumber",
c.Node_base, c.Node_forslag, sum(Score)
FROM
t_input as c
WHERE 'RowNumber' < 11
GROUP BY c.Node_base, c.Node_forslag
ORDER BY c.Node_base desc
'RowNumber'
в строке 6. Это не имя поля, это просто строка. С таким же успехом можно сказатьWHERE 'ThisIsAString' < 11
. И поскольку<
требует, чтобы оба значения были одного типа, он пытается преобразовать строку в INT и терпит неудачу. - person MatBailie   schedule 28.06.2012