sql server自定义排序

方法一:

比如需要对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)

转自:https://www.cnblogs.com/zjl000/p/5555196.html

原文地址:https://www.cnblogs.com/gered/p/10755582.html

时间: 2024-10-13 23:41:46

sql server自定义排序的相关文章

13、SQL Server 自定义函数

SQL Server 自定义函数 在SQL Server中不仅可以使用系统函数(如:聚合函数,字符串函数,时间日期函数等)还可以根据需要自定义函数. 自定义函数分为标量值函数和表值函数. 其中,标量值函数用于返回单个值,而表值函数用于返回一个结果集. 函数参数 参数可以是常量.表中的某个列.表达式或其他类型的值.在函数中有三种类型的参数. 1.输入:指必须输入一个值. 2.可选值:在执行该参数时,可以选择不输入参数. 3.默认值:函数中默认有值存在,调用时可以不指定该值. 创建标量值函数 语法:

SQL Server -- 自定义函数(学习总结,备忘)

SQL Server自定义函数,以前只在书上看过,没有动手去敲一敲,今天刚好接触到,看了几篇博文学习了下.做好备忘很重要!! (@[email protected])Y Learn from:http://www.cnblogs.com/lideng/archive/2013/04/15/3022418.html 自定义函数分为:标量值函数或表值函数两种. 标量值函数:如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数. 表值函数:如果 RETURNS 子句指定 TABLE,则函

SQL SERVER 的排序规则

有时候查询数据库的时候会发现(比如做重名检查的时候):数据库的查询时对大小写不敏感的,也就是 A 和 a 是一样的. 也就是说 select * from tabletest where name = 'a' 和 select * from tabletest where name = 'A' 两条 sql 语句的执行结果是一样的. 该怎么办呢...百度了一下,才了解到这关系到了 SQL SERVER 的排序规则.之前在安装 SQL SERVER 的时候曾经见到过这个选项,但是一直没明白是啥意思

也来谈谈SQL SERVER 自定义函数~

在使用SQL SERVER 数据库的时候,函数大家都应该用过,简单的比如 系统聚合函数 Sum(),Max() 等等.但是一些初学者编写自定义函数的时候,经常问起什么是表值函数,什么是标量值函数. 表值函数,顾名思义函数的返回值当然是返回一个表了.就是 TABLE 类型.TABLE 类型就相当于一张存储在内存中的一张虚拟表. 表值函数有分为内联表值函数(相当于参数化的视图)和多语句表值函数,二者原理一样,功能略有不同当然写法也就略有不同. 多语句表值函数 语法模板: CREATE FUNCTIO

SQL Server 自定义函数(Function)——参数默认值

原文:SQL Server 自定义函数(Function)--参数默认值 sql server 自定义函数分为三种类型:标量函数(Scalar Function).内嵌表值函数(Inline Function).多声明表值函数(Multi-Statement Function) 标量函数:标量函数是对单一值操作,返回单一值. 内嵌表值函数:内嵌表值函数的功能相当于一个参数化的视图.它返回的是一个表,内联表值型函数没有由BEGIN-END 语句括起来的函数体. 多声明表值函数:它的返回值是一个表,

Microsoft SQL Server 自定义函数整理大全

01.去除字符串中的html标记及标记中的内容 [叶子函数分享一]去除字符串中的html标记及标记中的内容 --1.创建函数 create function [dbo].[clearhtml] (@maco varchar(8000)) returns varchar(8000) as begin     declare @i int     while 1 = 1     begin        set @i=len(@maco)        set @maco=replace(@maco

Microsoft SQL Server 自定义函数整理大全(下)

34.字符串转成16进制函数 /**************************** 字符串转成16进制 作者:不得闲 QQ: 75492895 Email: [email protected] ****************************/ --创建函数(suiyunonghen(不得闲)) Create Function VarCharToHex(@Str Varchar(400)) returns varchar(800) as begin declare @i int,@

Sql Server 自定义数据类型

SQLServer 提供了 25 种基本数据类型: ·Binary [(n)]  二进制数据 既可以是固定长度的(Binary),也可以是变长度的.其中,n 的取值范围是从 1 到 8000.其存储窨的大小是 n + 4 个字节. ·Varbinary [(n)] 二进制数据 n 位变长度的二进制数据.其中,n 的取值范围是从 1 到 8000.其存储窨的大小是 n + 4 个字节. ·Char [(n)] 字符数据类型(任何字母.符号和数字任意组合而成的数据) 定长字符数据,其长度最多为 8K

SQL Server 自定义聚合函数

说明:本文依据网络转载整理而成,因为时间关系,其中原理暂时并未深入研究,只是整理备份留个记录而已. 目标:在SQL Server中自定义聚合函数,在Group BY语句中 ,不是单纯的SUM和MAX等运算,可以加入拼接字符串. 环境: 1:Sqlserver 2008 R2 2:Visual Studio 2013 第一部分: .net代码: using System; using System.Data; using Microsoft.SqlServer.Server; using Syst