sql order by 结合case when 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…