如何使用sql获取0值内的有序行列表?

时间:2010-02-11 05:47:54

标签: mysql

例如:

SELECT * FROM atable ORDER BY num; 

'atable'是:

num  name     
1     a    
3     y    
0     cc    
2     fs

结果是:

num  name     
1     a    
2     fs    
3     y    
0     cc

但我希望它是:

num  name  
0     cc    
1     a    
2     fs    
3     y

3 个答案:

答案 0 :(得分:1)

您确定0不是显示为0的空值吗? Null可以在顶部或底部排序,具体取决于数据库设置。

答案 1 :(得分:1)

我无法重现您所看到的结果。您发布的查询应该按您的意愿工作。这是我重现的步骤:

CREATE TABLE atable (num INT NOT NULL, name NVARCHAR(100) NOT NULL);
INSERT INTO atable (num, name) VALUES
(1, 'a'),
(3, 'y'),
(0, 'cc'),
(2, 'fs');
SELECT * FROM atable ORDER BY num;

结果:

0, 'cc'
1, 'a'
2, 'fs'
3, 'y'

也许您可以在您的问题中发布您的表格和测试数据的创建脚本,以便我们可以重现您的结果?

答案 2 :(得分:0)

SELECT * FROM atable 
ORDER BY ISNULL(CAST(num as int), 0);