日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

处理字符串_10_对字符串重新按字母排序重新组合

發(fā)布時間:2024/9/27 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 处理字符串_10_对字符串重新按字母排序重新组合 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ? ? ? ? ? ? ? ? ? ? ?對字符串重新按字母排序重新組合

需求描述

需求:將emp表里ename按照字母順序重新組合生成新的字符.

解決方法:這里通過字符串合并函數(shù)或者結(jié)合substring和row_number完成該效果.

注: 數(shù)據(jù)庫數(shù)據(jù)集SQL腳本詳見如下鏈接地址

員工表結(jié)構(gòu)和數(shù)據(jù)初始化SQL腳本

SQL代碼

--Sql Server: WITH x(ename,ename_Split) AS ( SELECT TOP 100000 ename,SUBSTRING(e.ENAME,seq.pos,1) AS ename_SplitFROM (SELECT ENAME FROM emp) e,(SELECT number AS pos FROM master.[dbo].[spt_values] WHERE type = 'P' AND number>0) seqWHERE seq.pos<=LEN(e.ename)ORDER BY ename, ename_Split )SELECT DISTINCTename, STUFF((SELECT N'' + CAST(ename_Split AS VARCHAR(255))FROM x e1WHERE e1.ename = e2.ename FOR XML PATH ('')), 1, 0, '') AS StrByAlph FROM x e2

注: 如果想在CTE里使用[]排序,需要在查詢里指定TOP.

消息 1033,級別 15,狀態(tài) 1,第 67 行

除非另外還指定了 TOP、OFFSET 或 FOR XML,否則,ORDER BY 子句在視圖、內(nèi)聯(lián)函數(shù)、派生表、子查詢和公用表表達式中無效。

執(zhí)行結(jié)果

-- Mysql: SELECT ename,group_concat(SUBSTRING(e.ENAME,seq.num,1) ORDER BY SUBSTRING(e.ENAME,seq.num,1) separator '') AS StrByAlph FROM (SELECT ENAME FROM emp) e,(SELECT i AS num FROM tb_incr)seq WHERE seq.num<=LENGTH(e.ename) GROUP BY ename ORDER BY ename,SUBSTRING(e.ENAME,seq.num,1)-- 注: 這里借助group_concat函數(shù)里的ORDER BY關(guān)鍵字,對已經(jīng)排序的字母進行合并.

?

總結(jié)

以上是生活随笔為你收集整理的处理字符串_10_对字符串重新按字母排序重新组合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。