sql 按指定规则排序,例如 按 1,3,2排序 而不是1,2,3

我们都知道 sql语句中的排序有desc(降序)、asc(升序),这两个都是按顺序排列的,最近有一个需求是不按顺序排序了 ,抽出个别的排在前面,并且这种需求是应对的问题中的数据是比较少的,而且没有规律可循,用程序处理的话虽然能实现,但是处理起来会复杂很多,下面我们就通过对order by 后面的排序语句进行处理达到我们想要的目的

在Company表中存储有id,Name(公司名称)等字段,其中id为自增 主键 首先我们按顺序查出前三条记录(默认升序,其中order by id ASC 可省略)

SELECT TOP 3 id,Name FROM dbo.Company ORDER BY Id ASC 

下面我们将第二条数据排在第一位

SELECT TOP 3 id,Name FROM dbo.Company order by (case Id when 2 then 0 else Id end) ASC
--或者
SELECT TOP 3 id,Name FROM dbo.Company order by (case Id when 2 then 0 else 1 end),Id asc

这样就实现了想要的结果,这里只是给大家提供一个此类问题的解决思路,大家有什么好的办法欢迎交流。我的qq是1066494108,以后会不定期更新一些工作中遇到的问题的结局方案和平时学习和生活中心得体会。希望大家多多指教。。。

原文地址:https://www.cnblogs.com/mingqi-420/p/11395950.html

时间: 2024-10-08 02:53:41

sql 按指定规则排序,例如 按 1,3,2排序 而不是1,2,3的相关文章

SQL按指定文字顺序进行排序(中文或数字等)

在有些情况下我们需要按指定顺序输出数据,比如选择了ID in(3,1,2,5,4)我们希望按这个3,1,2,5,4的顺序输出,这样只使用order by ID是无法实现的, 但是我们可以使用order by charindex(','+convert(varchar,ID)+',',',3,1,2,5,4,')的方法来实现这个目的.举例如下: Create Table info( ID int identity(1,1) not null, title varchar(100) not null

mysql 按指定规则排序

有些时候取数据时的排序规则需要为自己的指定规则,如 1>3>2>0这种,所以需要在取数据时指定排序规则,具体方法如下: SELECT `user` FROM user WHERE `user_status` in (0,1,2,3) ORDER BY FIELD(`user_status`,1,0,2,3); 这样就可以将取出来的数据按照 1>0>2>3 的顺序排序了. 在使用php框架 laravel 的时候,laravel 自带的超讯构造器并没有写好的排序指定规则的

按指定规则对List进行排序compare和遍历方法比较

1.两种排序方式分别有不同的排序规则设定模式 a> 用于compare方式排序的mapRule规则 1 Map<String, Integer> mapRule = new HashMap<String, Integer>(); 2 mapRule.put("AAA+", 1); 3 mapRule.put("AAA", 2); 4 mapRule.put("AAA-", 3); 5 mapRule.put(&quo

算法基础:正整数指定规则排序问题(Golang实现)

给定字符串内有非常多正整数,要求对这些正整数进行排序.然后返回排序后指定位置的正整数 排序要求:依照每一个正整数的后三位数字组成的整数进行从小到大排序 1)假设不足三位,则依照实际位数组成的整数进行比較 2)假设相等,则依照输入字符串中的原始顺序排序 说明(下面内容考生无须检查,调用者保证): 1) 字符串内正整数之间以单个空格分隔,字符串首尾没有空格 2) 正整数格式为十进制,大小:1~1000000,正整数的数字非零開始 演示样例: 如字符串内容 1223 22 3232 2016 依照规定

(华为)按照指定规则对输入的字符串进行处理

问题详细描述:将输入的两个字符串合并. 对合并后的字符串进行排序,要求为:下标为奇数的字符和下标为偶数的字符分别从小到大排序.这里的下标意思是字符在字符串中的位置. 对排训后的字符串进行操作,如果字符为'0'--'9'或者'A'--'F'或者'a'--'f',则对他们所代表的16进制的数进行BIT倒序的操作,并转换为相应的大写字符.如字符为'4',为0100b,则翻转后为0010b,也就是2.转换后的字符为'2': 如字符为'7',为0111b,则翻转后为1110b,也就是e.转换后的字符为大写

sql系列(基础篇)-第二章 约束和排序数据

更好的看↑代码点击VIEW PLAN 第二章 约束和排序数据 1. 在 emp 表中选择工资介于 1500 到 2500 的员工的信息: 注意:使用 between 下边界 and 上边界时,条件包括边界值: [email protected]>l 1 select * from emp 2* where sal between 1500 and 2500 [email protected]>/ EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----

算法基础:数组指定规则排序问题(Golang实现)

给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序, 如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列.如果第i列到最后一列都相同,则按原序排列. 样例输入: 1,2,3 2,3,4 2,3,1 1,3,1 按第2列排序,输出: 1,2,3 2,3,1 1,3,1 2,3,4 代码实现: package huawei import ( "fmt" "sort" ) func Tes

MS SQL开发命名规则

下面的SQL开发命名规则是我自己开发时总结.整理出来的,以后的开发过程中将不断完善.修改.也希望各位网友指点.批判. 纲领: SQL 语句关键字全部大写, 命名规则建议使用Pascal Case 或 每个单词使用下划线_隔开,不建议全部使用小写.尽量少使用特殊字符比如数字.空格等 使用英文或英文缩写,不建议使用拼音.尽量见名知意. 1:    数据库名命名规则 (1.1)  数据库名用产品名称或项目名称   尽量用名词,见名知意 :MyAssistant  我的个人助手            

设置SQL Azure防火墙规则来允许SSMS管理SQL Azure

SQL Server Management Studio可以用来管理SQL Azure 但SQL Azure是云端的关系型数据库,也就是说任何一台连接到Internet的机器都能够连接到SQL Azure数据库.但是在某些情况下这是不安全的,作为用户来说,我只希望我自己企业内部能够连接到我创建的SQL Azure数据库:除我企业之外的其他人都无法连接到这台SQL Azure数据库.这个功能可以功过设置SQL Azure的防火墙规则来进行. 我这里设置任何地址都可以访问 设置SQL Azure防火