sql order by和case THEN 并用】的更多相关文章

今天在工作中遇到一个多表查询,并且按精准度匹配排序的一个需求,费了我好大劲在此和大家分享一些心得 开始我是想根据他的搜索字段的长度来排序,但是遇到图二的这种结果就不好排序了 order by abs(len(Pd_name)-len('甲醇')) 然后我想到了第二种方法,使用case when. order by  CASE WHEN  pd_name = '甲醇' THEN 100  ELSE 1000 END 如图三,最好解决了我的问题,第一次写博客,技术和表达都需要提高,勿喷…
SELECT * FROM datav.a_current_per_entry_01 WHERE intime = (SELECT MAX(intime) FROM a_current_per_entry_01) ORDER BY hour ASC , CASE WHEN entry = '东1入口' THEN 1 WHEN entry = '西门入口' THEN 2 WHEN entry = '东南入口' THEN 3 WHEN entry = '正南入口' THEN 4 WHEN entry…
SQL ORDER BY 关键字 ORDER BY 关键字用于对结果集进行排序. SQL ORDER BY 关键字 ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序. ORDER BY 关键字默认按照升序对记录进行排序.如果需要按照降序对记录进行排序,您可以使用 DESC 关键字. SQL ORDER BY 语法 SELECT column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|…
ylbtech-SQL-W3School-基础:SQL ORDER BY 子句 1.返回顶部 1. ORDER BY 语句用于对结果集进行排序. ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对记录进行排序. 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字. 原始的表 (用在例子中的): Orders 表: Company OrderNumber IBM 3532 W3School 2356 Apple 4698…
select name from greatestsORDER BY case when name ='B' then 1 when name ='A' then 2 when name ='D' then 3 when name ='C' then 4 else 5 end…
Case表达式可以用在 Select,update ,delete ,set,in,where ,order by,having子句之后, 只是case表达式不能控制sql程序的流程,只能作为基于列的逻辑使用 SELECT TOP CASE a.Id WHEN THEN '骨性关节炎1' WHEN THEN '骨性关节炎2' WHEN THEN '骨性关节炎3' ELSE '不知道' END AS MyName FROM [dbo].[Disease] a ORDER BY a.Id 也可以这样…
f1用升序, f2降序,sql该这样写 ORDER BY  f1, f2  DESC 也可以这样写,更清楚: ORDER BY  f1 ASC, f2  DESC 如果都用降序,必须用两个desc ORDER BY  f1 DESC, f2 DESC…
select  Id,CustomerCode,CustomerName,CreateId,CreateName,Phone,StatusName,(case when phone is not null and len(phone)=11 and  SUBSTRING(phone,1,1)='1'  then 0 else 1 end) IsSend  from (SELECT  row_number() over (partition  by  t0.CustomerCode order b…
问题来了.执行SQL语句 SELECT * FROM tbl ORDER BY x, y 如果用来排序的列x.y当中有NULL值,那么它们的顺序是怎样的呢? 不同的数据库有不同的答案,目前的主流数据库大致分为两派. 一.NULL最大派 这一派包括PostgreSQL.Oracle.DB2等.它们的原则是,排序时NULL比其他的值都要大. 最大派还有一个共性,就是都支持NULLS FIST/LAST关键字.它可以强制指定NULL在排序结果中的位置.NULLS FIRST会将所有NULL放到排序结果…
1.按照三个字段都符合条件来排序 ORDER BY (    CASE    WHEN is_top = 1    AND top_end_time>UNIX_TIMESTAMP()    AND top_start_time<UNIX_TIMESTAMP() then        1    ELSE        2    END),sorts DESC,ct desc…
一:case表达式的用法 1.SQL中的case表达式的作用是用来对"某个变量"进行某种转化,通常在select字句中使用,举个例子: 不能看出,case表达式很像我们的if else的作用,在发现为真的 WHEN 子句时,CASE 表达式的真假值判断就会中止,而剩余的 WHEN 子句会被忽略.case表达式有两种写法: -- 简单CASE 表达式 CASE sex   WHEN '1' THEN '男'   WHEN '2' THEN '女' ELSE '其他' END -- 搜索C…
IF表达式 IF(A,B,C): 如果 A 是TRUE (A <> 0 and A<> NULL),则 IF()的返回值为B; 否则返回值则为 C.IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定. SELECT IF(sex=1,"男","女") AS s FROM classmates WHERE sex != ''; CASE WHEN THEN case具有两种格式.简单case函数和case搜索函数. --简单case…
在SQL Server中 case...end 语句,一般有如下两种用法: 1.相当于C#中if...else,例: select CName,头衔=case when CLevel='A1' then '初级程序员' when CLevel='A2' then '中级程序员' when CLevel='A3' then '高级程序员' else '骨灰级大师' end from Coder 这种写法可以用来做区间或等值的判断. 2.相当于C#中的switch...case,例: select…
(使用scott账户下的表) 1.Oracle SQL语句的case语句写法: --sql中的case用于分支判断并返回某个值. select empno , ename, deptno , case deptno when 10 then '总经办' when 20 then '综管部' when 30 then '市场部' else '其他' end from emp; select empno , ename, deptno , case when deptno=10 then '总经办'…
SQL 权威指南SQL 解惑在进行非定制化统计时,需要将已有编号方式转换为另外一种便于分析的方式进行统计需求 select case when name='哈尔滨' then '黑龙江' when name='大庆' then '黑龙江' when name='齐齐哈尔' then '黑龙江' when name='长春' then '吉林' when name='吉林' then '吉林' when name='沈阳' then '辽宁' when name='大连' then '辽宁' wh…
ORDER BY  后可加2个字段,用英文逗号隔开. f1用升序, f2降序,sql该这样写 ORDER BY  f1, f2  DESC 也可以这样写,更清楚: ORDER BY  f1 ASC, f2  DESC 如果都用降序,必须用两个desc ORDER BY  f1 DESC, f2 DESC 注: GROUP BY a,b  having  (a>10) order by  c,d…
记order by 语句对null值排序: 目录 记order by 语句对null值排序: MySQL: Oracle: SqlServer: MySQL: 将null值放在最后 select * from user order by i f(isnull(sort), 1, 0),sort asc,publish_time desc; 将null值放在最前 select * from user order by if(isnull(sort), 0, 1),sort asc,publish_…
众所周知,Switch循环比if...else...循环效率要好的多,当case有相同代码结构的时候,怎么样来简化代码结构,能让代码更具有通用性呢? 在网上找了一下,好多都是复制粘贴,还有的看起来太复杂,自己研究了一下,贴一段代码供大家交流学习,如有错误,欢迎指指点点,大神请右上角不谢! <?php $str = $_GET['i']; switch ($str) { case 0: echo "等于0的时候,输出这句话并跳出循环"; break; case 2: echo &q…
ORDER BY 子句中的列必须包含在聚合函数或 GROUP BY 子句中. slect * from table group by class,id order by id slect * from table group by class,id order by class…
ORDER BY 语句用于对结果集进行排序. ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序. ORDER BY 语句默认按照升序对记录进行排序. 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字. 原始的表 (用在例子中的): Orders 表: Company OrderNumber IBM 3532 W3School 2356 Apple 4698 W3School 6953 实例 1 以字母顺序显示公司名称: SELECT Company, O…
首先,order by是用来写在where之后,给多个字段来排序的一个DQL查询语句. 其次,order by写法: 1.  select 字段列表/* from 表名 where 条件 order by 字段名1 asc/desc, 字段名2 asc/desc,....... 2.  select 字段列表/* from 表名 where 条件 order by 字段序号 asc/desc, 字段序号 asc/desc,....... (此时字段序号要从1开始) 3.  select 字段列表…
order by 多个字段,每个字段后面都有排序方式,默认ASC 例如:select table a order by a.time1 ,a.time2 desc,a.time3 asc…
1.我们就可以使用 MySQL 的 ORDER BY 子句来设定你想按哪个字段哪中方式来进行排序,再返回搜索结果. 2.SELECT field1, field2,...fieldN table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]] 4. SELECT * from runoob_tbl ORDER BY runoob_author ASC;…
SELECT column_name,column_nameFROM table_nameORDER BY column_name,column_name ASC|DESC; SELECT id, name, url, alexa, countryFROM WebsitesORDER BY id DESC…
select * from emp;…
select * from emp;…
测试数据 1).等值判断->相当于switch case select S#,C#,C#=( case C# when 1 then '语文' when 2 then '数学' when 3 then '英语' when 4 then '选修' end ) from Sc 2)条件判断->相当于if else if else select S#,score,score=( case when score<60 then '差' when score between 60 and 80 t…
select b.XH, b.ZBXH, a.SJKSMC, a.JCRQ, a.JYRQ, a.JCJBMC, a.CYZMC,                               b.CYDDMC, b.CYDXMC, BGRQ, b.JCXMMC,b.DCAXJ,b.ZHJ,b.SMSJ, b.JYJGMC, a.JCJBDM, a.CYZDM, SJKSDM,                                                            c…
下面是正解 用 is null (case when dbo.Feedback.Funnel is null then '否' when dbo.Feedback.Funnel='否' then '是' when dbo.Feedback.Funnel= '是' then '是' end) as Funnel,(case when dbo.Feedback.Callout is null then '否' when dbo.Feedback.Callout= '否' then '是' when…
" then "返回的数据1" " then "返回的数据2" else "返回的其他数据" end as 新的列名 from table where ....…