经典 asp 使用 SQL Server 2014 在 SQL 查询中将 varchar 转换为 int

Classic asp convert varchar to int in SQL query using SQL Server 2014

我正在更新使用经典 asp 并曾经使用 SQL Server 2003 的旧站点。sortorder 列存储为 varchar

以下内容用于将 varchar 列转换为 int,然后可以在输出中对其进行排序(数字为 1-20)。现在返回的记录从“1”到“10”,然后是“11”等等。它仍然将它们视为 varchar

我是否需要将经典 asp 文件转换为适用于 SQL Server 2014 的新文件?我试过转换和解析。

RQ="Select *, convert(int, sortorder) from table Where theid=1 order by sortorder"
Set rs = Connect.Execute(Rq)

感谢您提供的任何帮助。我已经检查了这里的答案,但找不到任何更新的 SQL 服务器数据库与经典 ASP。

您需要在 ORDER BY 子句中转换为 INT,以便正确排序:

RQ = "Select * from table Where theid=1 order by convert(int, sortorder)"
Set rs = Connect.Execute(Rq)

仅在 SELECT 的列列表中进行转换没有帮助...

provided by @marc_s 是正确的。只是想详细说明我如何处理 SQL 查询中的转换以避免这些类型的问题。

因此您不必多次指定 CONVERT(INT, sortorder) 围绕您的查询的简单包装使其更易于使用。

SELECT t.*
FROM (
    -- List only the columns required.
    SELECT [col1], [col2], ... , CONVERT(INT, sortorder) [sortorder] 
    FROM [table]
    WHERE [theid] = 1
) t
ORDER BY t.sortorder

理想情况下,@marc_s has 更好的数据库设计将消除对此类解决方案的需求。