溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SQL中怎么合并多行記錄的相同字段值

發(fā)布時(shí)間:2021-08-04 16:22:10 來源:億速云 閱讀:225 作者:Leah 欄目:數(shù)據(jù)庫

SQL中怎么合并多行記錄的相同字段值,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

1.從數(shù)據(jù)庫中先查詢符合條件的記錄,存放于一個(gè)DataTable中,在使用c#等開始遍歷這張表,利用DataRow中的主鍵,再去讀取相應(yīng)的符合條件的多條記錄,合并這些第二次讀取到的記錄內(nèi)容,返回給前面的這個(gè)DataRow數(shù)據(jù)行。這樣做沒有錯(cuò),但是如果數(shù)據(jù)量大,我們可能面臨無數(shù)次的打開斷開數(shù)據(jù)庫鏈接,速度效率將會(huì)很低。 2.從數(shù)據(jù)庫中一次讀取數(shù)據(jù)到一張表中返回并顯示到UI層。說起來誰都想這么做,但是以前太笨,沒有去研究這個(gè),今天因?yàn)閿?shù)據(jù)量較大的原因,讓我不得不想些其他辦法來提高點(diǎn)效率。 Google~hk一下,果真有答案,然后依葫蘆畫瓢,自己寫了一個(gè) 目的是獲取不定量的符合條件的兼職記錄,并將每個(gè)兼職參與項(xiàng)目情況記錄到某幾個(gè)字段當(dāng)中,然后一次返回Table復(fù)制代碼 代碼如下: Create function Fn_GetJobListByPID--創(chuàng)建自定義函數(shù)獲取指定兼職參與的所有項(xiàng)目編號(hào)及項(xiàng)目數(shù)量 ( @ParttimerID int ) returns @t table(Jobs varchar(5000),ParttimerID int,TotalCount int) as begin declare @sql varchar(5000),@TotalCount int set @sql='' set @TotalCount=0 select @sql=@sql+j.JobNo+'-'+j.JobWave+' ',@TotalCount=@TotalCount+1 from ONJB_JobApplication a,ONJB_Jobs j where a.ParttimerID=@ParttimerID and a.Result='V' and a.JobID=j.JobID insert @t values(@sql,@ParttimerID,@TotalCount) return end

引用復(fù)制代碼 代碼如下: --........................... --做過項(xiàng)目 left join (select Jobs,ParttimerID,TotalCount From Fn_GetJobListByPID(@ParttimerID)) as j1 on p.ParttimerID=j1.ParttimerID --在做項(xiàng)目 left join (select CurJobs,ParttimerID,CurCount From Fn_GetCurJobsByPID(@ParttimerID)) as j2 on p.ParttimerID=j2.ParttimerID where p.ParttimerID=@ParttimerID

看完上述內(nèi)容,你們掌握SQL中怎么合并多行記錄的相同字段值的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

sql
AI