sql语句怎么让一个字符串的内容有升序有降序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句怎么让一个字符串的内容有升序有降序相关的知识,希望对你有一定的参考价值。

例如 select name from person
结果为 name
nihao-12-uu-a-11-1
ni-11-uu-aa-1-2
怎么让 第一个下划线的数字 升序排序 第三下划线的字母降序 最后一个下划线的数字升序排序
用 sql 语句

select ...from ...where ...
order by dbo.fuc_anzObject(name,'-',1) asc ,dbo.function fuc_anzObject(name,'-',3) desc,dbo.fuc_anzObject(name,'-',6) asc

函数,用于分割字符串取值参数说明:
@text :源文本内容 @:分隔用字符 @ins 取第几节内容
------------------------------
create function fuc_anzObject(@text varchar(200),@tax char,@ins int)
returns varchar(200)
as
begin
declare @txt varchar(200)
set @txt=''

while(CHARINDEX(@tax,@text)>0 and @ins>0)
begin

set @txt=left(@text,CHARINDEX(@tax,@text)-1)
set @text=substring(@text,CHARINDEX(@tax,@text)+1,len(@text))
if(@ins=0)
break
set @ins=@ins-1
end

if(@ins=1 and CHARINDEX(@tax,@text)=0)
set @txt=@text
if(@ins>1 and CHARINDEX(@tax,@text)=0)
set @txt=''

return @txt
end
-------------这个是通用的方法
如果是定制的方法,就需要把函数的内容写死在语句里,反复的套用substring和CHARINDEX来取要的值,写起来比较麻烦,但是数据量很庞大时效率会比调函数高一些.
参考技术A 你还没说清楚,你说清楚点。下划线都没有看到。 参考技术B 热通过追问

什么意思

追答

讲错了,我不知道

java怎么实现让添加的内容始终排在列表的第一位

你在页面添加内容,必须保存到数据库,然后会自动刷新页面再显示查数据。所以你可以在保存内容的表中加一个时间的字段,当你添加完内容后用后台去数据库查找数据的时候写SQL语句时加上按时间降序排列的语句即可! 参考技术A 用的什么控件?追问

是前端页面展示,控制不太清楚

追答

那你准备用什么控件都不知道?
是下拉列表控件还是别的?

以上是关于sql语句怎么让一个字符串的内容有升序有降序的主要内容,如果未能解决你的问题,请参考以下文章

sql 升序降序排列

sql查询降序和升序的问题

字符串String 升序和降序 Vue检测数据的原理

mssql指定的ID排在最前面,剩余的按照降序排列。sql语句该怎么写呀?

用sql语句怎么查一个表的信息

sql语句怎么按照字段1排序后再在本字段内按时间排序?