我有表格'具体','数据'和'类别'。在表格'细节'我有dataID和categoryID。我有一个查询,它选择所有数据并按categoryID对它们进行分组。我需要显示它们:
1
1,2
3,4
5,6
10
11
但是我得到了
1
1,2
10
11
3,4
5,6
它们不是由int命令的,因为我将convertet作为varchar:
select
CONVERT(nvarchar(50), SUBSTRING((SELECT DISTINCT ',' + convert(varchar(10), [data])
FROM specifics WHERE categoryID = MIN(k.ID) and dataID= $id
), 2, 50)) DATAS
from
specifics ts join category k on k.ID = ts.categoryID
where
ts.dataID= $id
group by k.ID order by DATAS
所以我的问题是:如何将数字串转换或转换为int并按这些int值排序?
答案 0 :(得分:0)
您可以将nvarchar列的一部分转换回int类型,并在ORDER BY子句中使用它。也许是这样的:
ORDER BY CONVERT(int, SUBSTRING(1,1, SUBSTRING((SELECT DISTINCT ',' + convert(varchar(10), [data])))