sql多行合並成一列
㈠ 怎麼樣將sql查詢出來的多行數據變成一行多列
sql查詢結果如果只有一條,就會顯示一行,行數代表了結果數,列數的多少取決於你所查詢的欄位數。
㈡ Sql語句按條件多行值合並成一列
修改前:1列多行數據
示例語句
select類別,名稱=(stuff((select','+名稱fromTable_Awhere類別=A.類別forxmlpath('')),1,1,''))fromTable_AasAgroupby類別
㈢ sql怎麼將幾行的記錄合並成一行
oracle11裡面有一個函數可以合並字元串的。
ms的應該沒有。
通用的辦法是使用游標,select按照clnvcode排序,然後記錄本條記錄的clnvcode,並記錄cposcode值,檢查下一個的時候,用上一條記錄的clnvcode對比本條的clnvcode,如果相等,就把cposcode內容與上次記錄的cposcode相加。
㈣ SQL多行合並為一行,SQL語句如何寫
最簡捷直觀的方法就是利用分組
selectID,
Sum(語文)語文,
Sum(數學)數學,
Sum(英語)英語
fromscores
groupbyID
你可以直接用下面的語句在SQL Server中測試結果:
DECLARE@ScoresVartable(
IDintNOTNULL,
Chineseint,
Mathint,
Englishint);
Insertinto@ScoresVar
values(1,70,null,null)
Insertinto@ScoresVar
values(1,null,80,null)
Insertinto@ScoresVar
values(1,null,null,90)
Insertinto@ScoresVar
values(2,75,null,null)
Insertinto@ScoresVar
values(2,null,85,null)
Insertinto@ScoresVar
values(2,null,null,95)
selectID,
SUM(Chinese)Chinese,
Sum(Math)Math,
Sum(English)English
from@ScoresVar
groupbyID
還有一種方法,可能更通用一點,利用 FOR XML PATH 和STUFF函數來做,雖然復雜,但是對表的數據類型無限制。
還是上面的測試數據,你可以通過下面的代碼來得到你想要的數據:
SELECTID,
STUFF((SELECT','+Cast(A.Chineseasvarchar)
[email protected]=B.IDFORXMLPATH('')),1,1,'')AsChinese,
STUFF((SELECT','+Cast(A.Mathasvarchar)
[email protected]=B.IDFORXMLPATH('')),1,1,'')AsMath,
STUFF((SELECT','+Cast(A.Englishasvarchar)
[email protected]=B.IDFORXMLPATH('')),1,1,'')AsEnglish
From@ScoresVarB
GroupByID
--輸出結果
IDChineseMathEnglish
1708090
2758595
㈤ Sql中按條件多行值合並成一列
修改前:1列多行數據
示例語句
select類別,名稱=(stuff((select','+名稱fromTable_Awhere類別=A.類別forxmlpath('')),1,1,''))fromTable_AasAgroupby類別
㈥ sql多行多列合並成一行多列,
您好利用分析函數 sum max min 等均可實現此功能(oracle 中 空值不參與大小比較(11g是這樣的 其他版本需要你自己測試相愛))
如:
select 產品, max(標價),max(二標價),max(三標價) from table group by 產品;
或者
select 產品, sum(標價)),sum(二標價),sum(三標價) from table group by 產品;
㈦ sql將查詢結果1行中的多列合成1列
比如,分別這幾列叫col1,col2。。。。
selectcol1,isnull(col2,'')+isnull(col3,'')+isnull(col4,''),col5from表名
sqlserver寫法,其他資料庫可能寫法略有改動
㈧ SQL 多行合並一行,動態增加列
示例
修改前:1列多行數據
示例語句
select類別,名稱=(stuff((select','+名稱fromTable_Awhere類別=A.類別forxmlpath('')),1,1,''))fromTable_AasAgroupby類別
把得到的內容以XML的形式顯示
for xml path('')
把拼接的內容的第一個「,」去掉
stuff((select ',' + ep_name from ep_detail where ep_classes = a.ep_classes for xml path('')), 1, 1, '')
㈨ sql語句多行合並為一行
用多個欄位分組就行,SQL如下
SELECTA,B,C,SUM(D)FROMTABLEGROUPBYC,A,B