当我使用 SELECT *
运行以下查询时,我收到错误消息:
[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() ...
运行此查询时,一切正常。
我的数据库如下所示:
此查询与其他表一起运行良好,其中 id
列是 NVARCHAR
ID 列仅是数字,如果我将其转换为: CAST(id as NVARCHAR) 我得到同样的错误。
编辑:
我发现列 ID 值有问题
编号 46903836 编号 9100000004
小 ID 没有前导零
原文由 Lukáš Irsák 发布,翻译遵循 CC BY-SA 4.0 许可协议
您不需要转换您的 id 列,因为它已经在 bigint 数据类型中
![SQL服务器数据库]](https://i.stack.imgur.com/WQ9QM.png)