数字串到int

时间:2015-01-27 23:26:27

标签: sql converter

我有表格'具体','数据'和'类别'。在表格'细节'我有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值排序?

1 个答案:

答案 0 :(得分:0)

您可以将nvarchar列的一部分转换回int类型,并在ORDER BY子句中使用它。也许是这样的:

    ORDER BY CONVERT(int, SUBSTRING(1,1, SUBSTRING((SELECT DISTINCT ',' + convert(varchar(10), [data])))