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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

server多笔记录拼接字符串 sql_sqlserver 将多行数据查询合并为一条数据

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 server多笔记录拼接字符串 sql_sqlserver 将多行数据查询合并为一条数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有這樣一個需求:表T_FUN_TASK為任務表,有字段(TASKID,TASKNAME),表T_FUN_LOGBOOK為日志表,有字段(LOGID,TASKID,LOGDATE),一個任務可持續多天,每天會記錄一條日志。在查詢表T_FUN_TASK時,需將任務表中的 LOGDATE 查詢出來作為一列 LOGDATES顯示。

T_FUN_TASK

T_FUN_LOGBOOK

查詢結果

此結果查詢方法可以用存儲過程輕松實現,這里我要介紹的是sqlserver FOR XML PATH語句的應用,在SQL Server中利用 FOR XML PATH 語句能夠把查詢的數據生成XML數據

且合并為一條數據,看以下示例:

SELECT LOGDATE FROM T_FUN_LOGBOOK WHERE TASKID=231 FOR XML PATH

結果為:

2014-01-06T00:00:00

2014-01-07T00:00:00

在前面的需求中,我是想要把這2條數據合并到一起且沒有XML標簽,條與條之間用下劃線(_)分隔的,日期的格式也變為了2014/01/07的格式。下面來一步一步來完成需求。

首先,將日期格式轉化為需要的格式:

SELECT CONVERT(VARCHAR(100), LOGDATE, 111) FROM T_FUN_LOGBOOK WHERE TASKID=231 FOR XML PATH

結果變為:

2014/01/06

2014/01/07

可以發現,轉化字符卷的過程中,把logdate標簽給去掉了。現在我們要去掉標簽:

SELECT CONVERT(VARCHAR(100), LOGDATE, 111) FROM T_FUN_LOGBOOK WHERE TASKID=231 FOR XML PATH('')

在PATH后面將一個空的字符卷作為參數傳遞,就可以去掉標簽,結果:2014/01/062014/01/07。

現在兩條結果之間很難區分,需要用下劃線將其分隔開來,方法是在CONVERT函數前面加上一個下劃線:

SELECT '_'+CONVERT(VARCHAR(100), LOGDATE, 111) FROM T_FUN_LOGBOOK WHERE TASKID=231 FOR XML PATH('')

結果:_2014/01/06_2014/01/07。

在分析了FOR XML PATH語句之后,就來將這個查詢結果添加到對T_FUN_TASk的查詢結果中去。我的思路是先構建一個子查詢,然后查詢TASK表時LEFT JOIN這個子查詢:

SELECT T1.TASKID,'TASKNAME' AS TASKNAME,T2.LOGDATES FROM T_FUN_TASK T1

LEFT JOIN (SELECT TASKID,

LOGDATES=(SELECT '_'+CONVERT(VARCHAR(100), LOGDATE, 111) FROM T_FUN_LOGBOOK WHERE TASKID=T1.TASKID FOR XML PATH('')) FROM T_FUN_LOGBOOK T1

GROUP BY TASKID) T2 ON T2.TASKID=T1.TASKID

ORDER BY T1.TASKID ASC

運行以上SQL后得到的結果為:

發現LOGDATES值的第一個下劃線應該去掉,于是修改SQL,應用 STUFF函數去掉第一個下劃線:

SELECT T1.TASKID,'TASKNAME' AS TASKNAME,T2.LOGDATES FROM T_FUN_TASK T1

LEFT JOIN (SELECT TASKID,

LOGDATES=STUFF((SELECT '_'+CONVERT(VARCHAR(100), LOGDATE, 111) FROM T_FUN_LOGBOOK WHERE TASKID=T1.TASKID FOR XML PATH('')),1,1,'') FROM T_FUN_LOGBOOK T1

GROUP BY TASKID) T2

ON T2.TASKID=T1.TASKID

ORDER BY T1.TASKID ASC

將結果轉化為JSON 返回給前端之后,JS按照下劃線分隔這個字段的值,即可以得到一個任務下面日志的填寫情況。

GROUP_CONCAT 將mysql多條數據合并為一條

實現將多條數據合并為一條數據,在mysql中可以通過?GROUP_CONCAT 函數實現 上面是瀟leader發我的和工作不相關的小小小需求描述,很明顯是要把id和name相同的數據合并為一條,下面按 ...

mysql查詢隨機幾條數據(速度快)

MySql查詢隨機幾條數據 想到了 Max RAND 這幾個函數 用以下2種辦法都可以實現查詢. 速度還行. 幾十萬數據左右, 沒有什么問題. SELECT * FROM `news` WHERE i ...

不同數據庫,查詢前n條數據的SQL語句

不同的數據庫,支持的SQL語法略有不同,以下是不同數據庫查詢前n條數據的SQl語句 SQL Server(MSSQL) SELECT TOP n *?FROM table_name ORACLE SE ...

如何將多條update語句合并為一條

需求: 如何將多條update語句合并為一條update語句:如,update?table1?set?col='2012'?where?id='2014001'? ? ? update?table1? ...

SQL 一列數據整合為一條數據

SQL 一列數據整合為一條數據: SELECT ?STUFF(( SELECT distinct ?',' + 列名 FROM 表名 where ?[條件] FOR XML PATH('') ), 1 ...

[MSSQL]找出一天數據中從第一條數據開始每累加1小時的數據

用Sql Server找出一天數據中從第一條數據開始每累加1小時的數據 -- ============================================= -- Author: Alle ...

gridview 綁定多個格式相同的數據源(數據查詢合并)

在做項目時,要求在同一個GridView中同時顯示不同分組中的前若干條數據 幾個技術要點: 1.數據分組,本方法中未用group by 2.幾個結果格式相同的查詢合并綁定 3.取查詢結果的前或后若干條 ...

sqlserver中 多條數據合并成一條數據 (stuff 與 for xml path 連用)

SQL 列轉行,即多行合并成一條 ? 需求:按照分組,將多條記錄內容合并成一條,效果如下: 數據庫示例: CREATE TABLE [t2]([NID] [bigint] NULL,[district ...

SQL Server 分割字符串和合并多條數據為一行

分割字符串函數 create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20) ...

隨機推薦

juqery合成事件toggle方法

當指定元素被點擊時,在兩個或多個函數之間輪流切換. 如果規定了兩個以上的函數,則 toggle() 方法將切換所有函數.例如,如果存在三個函數,則第一次點擊將調用第一個函數,第二次點擊調用第二個函數, ...

spring mvc rest 方式

handler中編寫方式: @RequestMapping("/{userName}/ajaxUser3.do") @ResponseBody public UserInfo aj ...

Nginx的知識分享,技術分享

3. Nginx常用命令管理及升級 查看nginx進程 ps -ef|grep nginx 說明:nginx的進程由主進程和工作進程組成. 啟動nginx nginx 啟動結果顯示nginx的主線程和 ...

怎樣生成一個頂點迭代器(MItMeshVertex)

最近修改一個maya中的jlCollisionDeformer工具,該工具有一個明顯不足,變形后頂點分布太亂,無法滿足生產需求.于是考慮對該變形后的頂點進行平滑處理.既然要做平滑處理就要獲取當前點及與 ...

32bit GM命令

GM 命令[32位服務端GM命令] //announce message this basicly tells a announcement on the whole server.. you can ...

Scrapy模擬登錄GitHub

d: 進入D盤 scrapy startproject GitHub 創建項目 scrapy genspider github github.com 創建爬蟲 編輯github.py: # -*- c ...

ACS蟻群算法求解對稱TSP旅行商問題的JavaScript實現

本來以為在了解蟻群算法的基礎上實現這道奇怪的算法題并不難,結果實際上大相徑庭啊.做了近三天時間,才改成現在這能勉強拿的出手的模樣.由于公式都是圖片,暫且以截圖代替那部分內容吧,mark一記. 1 蟻群 ...

JAVA 面試須知

本篇文章會對面試中常遇到的Java技術點進行全面深入的總結,幫助我們在面試中更加得心應手,不參加面試的同學也能夠借此機會梳理一下自己的知識體系,進行查漏補缺. 1. Java中的原始數據類型都有哪些, ...

Android開發 使用 adb logcat 顯示 Android 日志

作者 : 萬境絕塵 ?轉載請著名出處 eclipse 自帶的 LogCat 工具太垃圾了, 開始用 adb logcat 在終端查看日志; 1. 解析 adb logcat 的幫助信息 在命令行中輸入 ...

JAVA中字符串問題

JAVA中對象創建 通過new關鍵字來創建對象 通過newInstance()方法來創建對象 使用反序列化機制中IO流中恢復Java對象 通過clone()方法復制一個對象 直接量方式,String ...

總結

以上是生活随笔為你收集整理的server多笔记录拼接字符串 sql_sqlserver 将多行数据查询合并为一条数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 丰满秘书被猛烈进入高清播放在 | 黄色av网站在线 | 国产毛茸茸 | 无码精品人妻一区二区三区影院 | 在线免费看污网站 | 久久久久久久久电影 | 欧美人与性囗牲恔配 | 麻豆短视频在线观看 | www.国产一区二区三区 | 性感美女视频一二三 | 色女人综合| 国产精品视频免费 | 久久综合福利 | 久久精品国产精品亚洲 | 最好看的日本字幕mv视频大全 | 国产精品普通话 | 日本妈妈3 | 99久久精品免费看国产四区 | 亚洲12p | 午夜国产片 | 欧美日韩大片在线观看 | 夜色福利 | 日韩精品在线观看一区二区 | 精品国产一区二区三区四区精华 | 91av看片 | 亚洲成人一 | 日本一二三区在线视频 | 免费人成在线观看视频播放 | 天天视频天天爽 | 91自啪| a毛片在线免费观看 | 亚洲自拍偷拍精品 | 日本一本不卡 | 丁香久久 | 亚洲激情影院 | 精品无码国产一区二区三区av | 成人免费毛片足控 | 国产精品久久久久久久一区二区 | 日本久色| 国产一区在线视频观看 | 成人免费在线网站 | 88xx成人永久免费观看 | 亚洲91色 | 国产中文字幕一区二区 | xxxx.国产| 欧美高清不卡 | 伊人黄色片 | 日韩欧美一二三区 | 欧美大片免费播放器 | 日韩欧美一区二区区 | 黄色a在线观看 | 国精产品一区一区三区免费视频 | 另类av小说 | 日韩大胆视频 | 国产一级大片在线观看 | 人妻大战黑人白浆狂泄 | 日韩精品久久久久久久电影99爱 | 九一亚色 | 精品成人一区二区三区 | 日韩成人免费电影 | 黄视频在线免费看 | 国产美女永久免费 | 午夜精品视频一区 | 精品无码人妻一区二区三区 | 国产精品成人免费精品自在线观看 | 丰满人妻熟妇乱偷人无码 | 日产精品久久久久 | 欧美绿帽合集xxxxx | 色就操| 国产资源在线观看 | av最新版天堂资源在线 | 中文字幕成人一区 | av番号网| 黄页免费视频 | 国产chinasex对白videos麻豆 | 国产精品无码av在线有声小说 | 福利资源导航 | 日本福利一区二区三区 | 久热青草| 欧美高大丰满少妇xxxx | 日韩免费| 亚洲青草| 自拍偷拍18p | 日韩精品xxx | 亚洲综合色小说 | 爱爱一区| 操小妞| 插我舔内射18免费视频 | 久久欧美 | 亚洲欧美色视频 | 大陆av在线| 国产精品久久久久久久 | 人妖黄色片 | 99re国产在线 | 美女黄色片网站 | 国产毛片基地 | www.国产免费 | 51调教丨国产调教视频 | 香蕉久久国产av一区二区 |