SQL数据库如何按照表内某列int值的大小进行排序求指教!
这个SQL数据库真扯淡,排个序只是自慰就只能看看而已,后来我只能复制了全部数据后重新创建新表,就好比电脑桌面上点了按照某种顺序排序应该就一直这样才对,它这个竟然会返回去无...
这个SQL数据库真扯淡,排个序只是自慰就只能看看而已,后来我只能复制了全部数据后重新创建新表,就好比电脑桌面上点了按照某种顺序排序应该就一直这样才对,它这个竟然会返回去无语了,这是什么反人类的狗屎操作!
展开
3个回答
展开全部
怎么说呢,并不是说做不到,而是你的理解有一点点问题。
数据库中的“表”总的来说是无序的,也就是说,它“不应该”有“顺序”的概念。一个表里的每个条目都是一样的,本质上没有“先后”。“顺序”体现在对表的“查询”动作中。换句话说,就是你的order by才告诉引擎,查询到的若干条目应该以什么样的顺序排列。这是一个很科学也很重要的概念。因为在实际使用中,你可能今天想按某个时间字段排序,明天想按某个索引号排序,但这些所谓的“顺序”都是你想要看到的数据的一种投影方式,而并不是数据本身应当具有的属性。
如果你确实需要对数据库中的所有条目,按某个字段排列的话,比较可行的办法就是把它们都读出来,排序,清空或删除表(并重建),重新写入数据。
数据库中的“表”总的来说是无序的,也就是说,它“不应该”有“顺序”的概念。一个表里的每个条目都是一样的,本质上没有“先后”。“顺序”体现在对表的“查询”动作中。换句话说,就是你的order by才告诉引擎,查询到的若干条目应该以什么样的顺序排列。这是一个很科学也很重要的概念。因为在实际使用中,你可能今天想按某个时间字段排序,明天想按某个索引号排序,但这些所谓的“顺序”都是你想要看到的数据的一种投影方式,而并不是数据本身应当具有的属性。
如果你确实需要对数据库中的所有条目,按某个字段排列的话,比较可行的办法就是把它们都读出来,排序,清空或删除表(并重建),重新写入数据。
展开全部
这个需要在排序语句中使用条件判断
例如:表【Table_temp】中列【col1】为字符,属性为varchar(10),排序时需要按照B、A、C的顺序显示,则可按照以下SQL语句:
select
*
from
Table_temp
order by
case
when col1='B' then 1
when col1='A' then 2
when col1='C' then 3
end
例如:表【Table_temp】中列【col1】为字符,属性为varchar(10),排序时需要按照B、A、C的顺序显示,则可按照以下SQL语句:
select
*
from
Table_temp
order by
case
when col1='B' then 1
when col1='A' then 2
when col1='C' then 3
end
追问
我不只是让他显示,我还要让它真正意义上的更改表内顺序,不只是看到还要真正意义上的修改了表内的顺序,不然每次改数据都要用命令麻烦!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照你想要的结果插入另一张表中;话说改变数据在表中的存储顺序没有意义呀,这个不是前台程序做的事情么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询