精华内容
下载资源
问答
  • sql自定义排序

    2021-04-29 14:26:46
    sql自定义排序 比较常见的排序一般都是某字段升序asc排序,或者某字段降序desc排序,或者先某字段升序排序然后某字段降序排序的组合模式,但是这样的排序并不适用一些特殊情景,这个时候我们就需要使用到自定义排序...

    sql自定义排序

    比较常见的排序一般都是某字段升序asc排序,或者某字段降序desc排序,或者先某字段升序排序然后某字段降序排序的组合模式,但是这样的排序并不适用一些特殊情景,这个时候我们就需要使用到自定义排序了,举个栗子,如我要根据订单的状态进行排序。一般的订单状态都是存int的数字 1-已支付,2-已发货,3-退货中,4-已退款,如用一般的排序的话,我们只能做到 1,2,3,4 or 4,3,2,1 但是如果我们想要实现 1,4,3,2这样的效果的话,就做不到了,这个时候就需要用到自定义排序order by field

    原生sql

    SELECT * FROM order ORDER BY field(status,1,4,3,2) //示例代码

    TP方法

    Db::table(‘order’)
    ->orderRaw(“field(status,1,4,3,2)”)
    ->select();

    展开全文
  • SQL自定义排序

    千次阅读 2019-06-13 13:33:27
    方法一: 比如需要对SQL表中的字段NAME进行...自定义排序:order by charindex(NAME,‘张三李四王五赵六’) CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下: CHARIN...

    方法一:

    比如需要对SQL表中的字段NAME进行如下的排序:
    张三(Z)
    李四(L)
    王五(W)
    赵六(Z)

    按照sql中的默认排序规则,根据字母顺序(a~z)排,结果为:李四 王五 赵六 张三

    自定义排序:order by charindex(NAME,‘张三李四王五赵六’)

    CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下:
    CHARINDEX ( expression1 , expression2 [ , start_location ] )
    Expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。
    CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么函数整数“0”。让我们看看下面的函数命令执行的结果:
    CHARINDEX(‘SQL’, ‘Microsoft SQL Server’)
    这个函数命令将返回在“Microsoft SQL Server”中“SQL”的起始位置,在这个例子中,CHARINDEX函数将返回“S”在“Microsoft SQL Server”中的位置11。
    接下来,我们看这个CHARINDEX命令:
    CHARINDEX(‘7.0’, ‘Microsoft SQL Server 2000’)
    在这个例子中,CHARINDEX返回零,因为字符串“7.0” 不能在“Microsoft SQL Server”中被找到。接下来通过两个例子来看看如何使用CHARINDEX函数来解决实际的T-SQL问题。

    方法二
    针对表table_example的class字段排序,class字段值为:A、B、C、D。用户要求table_example中的数据按照class字段值C、A、D、B的顺序排序。    
    select * from teble_exaple
    order by(

    case class

    when ‘C’ then 1,

    when ‘A’ then 2,

    when ‘D’ then 3,

    when ‘B’ then 4

    else ‘’
    end
    )

    方法三
    利用decode函数: select * from table_example order by decode(class,‘C’,1,‘A’,2,‘D’,3,‘B’,4)

    展开全文
  • sql 自定义排序

    2015-09-14 22:13:09
    自定义排序:order by charindex (NAME,‘张三李四王五赵六’) mySQL中charindex 与SQLServer不同,类似的有: LOCATE(STR1,STR)、POSITION(STR1 IN STR)、INSTR(STR,STR1)3个函数作用相同,返回子字符串str1在字符串...

    原理就是返回一个字符串的首次出现位置来排序

    在SQLServer中如下:

    自定义排序:order by charindex (NAME,‘张三李四王五赵六’)

    mySQL中charindex 与SQLServer不同,类似的有:

    LOCATE(STR1,STR)、POSITION(STR1 IN STR)、INSTR(STR,STR1)3个函数作用相同,返回子字符串str1在字符串str中的开始位置这三个函数跟SQLSERVER里的CHARINDEX()函数功能类似

    为了增加特征可以加入特征符号

    例如:

    CHARINDEX('|' + NAME + '|', '|张三|李四|王五|赵六|')

    关于数据库字符串连接差异可以参考:http://blog.csdn.net/ieayoio/article/details/48463267






    展开全文
  • SQL自定义排序小技巧

    2019-06-04 23:35:23
    SQL自定义排序小技巧 ** 凡使用过excel的读者,都知道excel有个自定义排序功能 那么在sql中是否可以实现类似的自定义排序功能哪? 答案是肯定的,这里,笔者使用的是case when 排序法。 实验如下(测试环境为mysql):...

    **

    SQL自定义排序小技巧

    **
    凡使用过excel的读者,都知道excel有个自定义排序功能
    那么在sql中是否可以实现类似的自定义排序功能哪?
    答案是肯定的,这里,笔者使用的是case when 排序法。
    实验如下(测试环境为mysql):
    要求:根据指定城市名称排序:
    #1.按照整个字段排序法:
    (即按照城市名称–name字段默认排序)

    SELECT NAME AS
    	城市名称 
    FROM
    	world.city 
    WHERE
    	countrycode = 'CHN' 
    	AND NAME IN ( 'Shanghai', 'Peking', 'Chongqing' ) 
    ORDER BY
    	NAME;
    

    执行结果为:
    在这里插入图片描述
    #2.按照指定城市名称(现要求排序:Shanghai排第一,Chongqing排第二,其他的默认排序)

    SELECT NAME AS
    	城市名称 
    FROM
    	world.city 
    WHERE
    	countrycode = 'CHN' 
    	AND NAME IN ( 'Shanghai', 'Peking', 'Chongqing' ) 
    ORDER BY
    CASE	
    		WHEN NAME = 'Shanghai' THEN 1 
    		WHEN NAME = 'Chongqing' THEN 2 
    		ELSE NAME 
    	END;
    

    执行结果如下:
    在这里插入图片描述
    此法妙处在于:可扩展,比如,case when 在特定的when或else后,可加上按照字段值的长度排序、like特定字符排序、正则表达式等指定的一种规则或混合规则的排序,以期实现排序的效果。

    展开全文
  • 最近项目上出现一个需求 数据有四种默认状态需要给他们自定义排序 状态:草稿,待审核,通过,驳回 需要给他们一个自定义的排序 本人比较懒,网上的sql基本上都是 when then 的形式 因为项目是后面要加的我就想要...
  • SQL自定义排序规则

    2020-05-30 13:20:16
    今天写排序发现汉字没法正常排序于是 SELECT * FROM fangxun.app_warningcategory where warningtype like CONCAT('%','各级抢险队伍','%') order by CASE warninglevel WHEN '一级预警' THEN 1 WHEN '二级...
  • sql 自定义排序 顺序

    千次阅读 2015-05-07 20:08:38
    比如需要对SQL表中的字段NAME进行如下的排序: ...自定义排序:order by charindex(NAME,‘张三李四王五赵六’)   CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方
  • sql自定义排序关键字

    2017-02-15 11:12:29
    order by decode
  • 我想通过自定义排序对它们进行排序。 我已经按门asc发出命令,但这仅是按字母顺序排序,我想像下面这样自定义排序Gate 1Gate 2Gate 3Gate 4Gate 5CPARNCYCCT2CCT3NCT1NCT2NCT3这是我的查询SELECTgate,COUNT(total_...
  • oracle select 1 from table order by decode(table_column,'值1' ,1,'值2',2........) decode 是oracle数据库的一个函数 ...如果没有定义的值的排序 ,将会排在已定义的值后面。 mysql select 1 form tabl...
  • SQL自定义排序 ORDER BY

    2015-12-01 13:34:00
    将id为30002 排在最前面 50第二 其他 不变 SELECT TOP 10 * FROM 【表名】 t1 ORDER BY case t1.ID when 30002 then 0 WHEN 50 THEN 1 ELSE t1.ID END   转载于:...
  • oracle sql 自定义排序

    2010-11-18 14:24:31
    order by decode(name,'张',1,'李',2,'王',3)  
  • 点击关注上方“SQL数据库开发”,设为“置顶或星标”,第一时间送达干货你有遇到过这样的场景吗?按指定的顺序输出结果,比如按“北京,天津,上海,重庆……”这样的顺序。今天给大家介绍几种方法...
  • SQL Server 自定义排序

    2019-12-18 21:41:39
    SQL Server 自定义排序
  • SQL server 排序 自定义排序 ASC DESC

    千次阅读 2019-05-20 11:38:51
    1.升序排序 ASC ...3.自定义排序 (1).CHARINDEX 通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0。 基本语法如下:  CHARINDEX ( expressionToFind , expressionToS...
  • SQL_自定义排序

    万次阅读 2020-02-07 14:37:27
    用"按字段排序" (ORDER BY FIELD). 语法 ORDER BY FIELD(id, 5, 3, 7, 1) 要注意的是, FIELD 后面是没有空格的. 因此, 完整的 SQL 为: SELECT * FROM MyTable WHERE id IN (1, 7, 3, 5) ORDER BY FIELD(id, 5, 3, 7,...
  • sql实现自定义排序

    2019-10-06 03:45:39
    sql实现自定义排序 select * from table1 orderbyCHARINDEX(','+CONVERT(varchar(10),ID)+',',',123,789,456,') select Product.*, CHARINDEX...
  • SQL自定义字段排序

    2019-08-10 07:11:45
    最近公司有个系统需要按自定义排序,字段是char(1)型,N = NEW ,P= PAUSE ,E=END,S=START 需要按S,N,P,E排序,查了一下资料,可以这样做 order by charindex(fieldname,'SNPE') 转载于:https://www...
  • Linq to SQL: 自定义排序

    千次阅读 2013-09-10 15:38:13
    to SQL: 自定义排序 - Q.yuhen  某些时候我们需要按照某个特定的序列来完成结果排序,比如说按 in 条件中的 Id 顺序返回文章(Archive)。  SQL select Id, Title from Archive where Id in (25, ...
  • SELECT (SELECT COUNT(`Id`) FROM 表名 别名1 WHERE 别名1
  • sqlserver 支持定位当前页,自定义排序的分页SQL(拒绝动态SQL)
  • SQL实现自定义排序

    万次阅读 2008-12-23 17:27:00
    今天用到了自定义排序,上网找了些资料,现整理一下。 1.SQLServer数据库:(1).select Id, Titlefrom Archivewhere Id IN (25, 23, 19, 21, 22, 26) order by CHARINDEX(| + LTRIM(RTRIM(STR(Id))) + |, |25|23|19|...
  • SQLSERVER自定义排序展示处理方法

    千次阅读 2019-07-25 11:26:39
    一开始思考是想通过两次视图,第一次将某个工序替换成数字,第二次在通过数字进行排列,但是思考后发现该方法较为负责且费时,在通过检索度娘后发现,sqlserver是含有自定义排序功能的 以下为代码部分: select TOP...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,903
精华内容 34,761
关键字:

sql自定义排序