我有一个相当简单的分页查询,用于从表中获取行
ALTER PROCEDURE mytable.[news_editor_paginate]
@count int,
@start int,
@orderby int
AS
BEGIN
SET NOCOUNT ON;
SELECT TOP (@count) * FROM
(
SELECT news_edits.*,
ROW_NUMBER() OVER (
ORDER BY CASE
WHEN @orderby = 0 THEN news_edits.[time]
WHEN @orderby = 1 THEN news_edits.lastedit
WHEN @orderby = 2 THEN news_edits.title
END
DESC
) AS num
FROM news_edits
) AS a
WHERE num > @start
END
该@orderby
参数决定结果应按哪一列排序。
news_edit.[time]
并且news_edits.lastedit
都是日期时间字段。但是news_edits.title
是一个varchar字段。
查询对于两个日期时间字段都运行良好,但是当@orderby = 2
我收到以下错误时:
“从字符串转换日期和/或时间时转换失败。”
我遇到的问题是我没有尝试转换任何东西?