Когда я запускаю следующий запрос с SELECT *
я получаю сообщение об ошибке сказав:SQL Server - Ошибка преобразования типа данных NVARCHAR в BigInt
[S0005] [8114] Ошибка преобразования типа данных NVARCHAR в BigInt.
SELECT * FROM (
SELECT * , ROW_NUMBER() OVER (ORDER BY CAST(id as BIGINT)) AS RowNum
FROM users
) AS users
WHERE users.RowNum BETWEEN 0 AND 5 ;
Когда я запускаю этот запрос только с SELECT id , ROW_NUMBER() ...
все работает.
My DB выглядит следующим образом:
Этот запрос хорошо работать с другой таблицей, где id
колонка NVARCHAR
ID столбец только номер, и если я бросил его, как: CAST (идентификатор как NVARCHAR), я получаю такую же ошибку.
EDIT:
I Found проблему с колонкой ID значения
ID 46903836 ID 9100000004
Малые идентификаторы не имеют ведущие нули
Не нужно указывать ID как 'BIGINT', если это уже' BIGINT'. Вам нужно только бросить его, если это «NVARCHAR». Если у вас есть письмо в поле 'ID', потому что это' NVARCHAR', то вы не можете преобразовать его в числовой. –
Ну сообщение об ошибке довольно ясно. У вас есть значение в вашем varchar, которое не является допустимым bigint. Вот почему вы всегда должны использовать правильный тип данных. –
, почему вы выбрали ID как BIGINT, если на вашем изображении ID - BIGINT? –