『壹』 sql 列值相同合並行
--由於你是SQL Server2005 所以可以用一句話來實現 如下:
select a ,b=stuff((select ';'+rtrim(b) from tbName where k.a=a for xml path('')),1,1,'')
from tbName k
『貳』 SQL 如何將一個表中的兩條或多條擁有相同ID的記錄合並為一條
一、創建表:
create table stuUnion
(
sid int identity primary key,
cid int,
id varchar(500)
)
二、添加數據:
insert into stuUnion
elect 1,'a' union
select 1,'b' union
select 2,'c' union
select 2,'d' union
select 3,'e' union
select 3,'f' union
select 3,'g'
三、用標量函數查詢:
創建標量函數:
create function b(@cid int)
returns varchar(500)
as
begin
declare @s varchar(500)
select @s=isnull(@s+'','')+rtrim(id)+',' from stuUnion where cid=@cid
return @s
end;
用標量函數查詢:
select cid,dbo.b(cid) as id from stuUnion group by cid
用sqlserver的xml:
select cid,ID=STUFF((select ' '+rtrim(id)+',' from stuUnion where st.cid=cid order by id for XML path('')),1,1,'') from stuUnion st group by cid
『叄』 合並重復 SQL
第一步查出的結果集允許它重復,效果如下
wnum suha
a 12
a 64
第二步以第一步的結果集,按wnum做group by 這樣就可以得到你要的效果啦
『肆』 SQL語句合並相同項
你的語句條件不完整,只用「年齡」關聯B表是不夠准確的,如果B表中有姓名,需要把姓名也加上,這樣寫:
select A.年齡,A.姓名 From A,B where A.姓名=B.姓名 and A.年齡=B.年齡;
如果B表中不存在「姓名」,並且A表中「年齡」,「姓名」組合唯一,那麼語句改成如下寫法就能避免重復,而且效率會高些。
select A.年齡,A.姓名 From A where exists (select 1 from B where A.年齡=B.年齡);
『伍』 SQL 兩張表合並 (兩張表的列都相同)
可以參考下面的方法:
1、第一種,用一張臨時表,把所有數據都放在一張表裡
INSERT INTO QunList SELECT * FROM QunList89,90,91,92;
再在QunList中查詢
2、第二種,用 UNION ALL方式查詢
SELECT * FROM QunList89
UNION ALL
SELECT * FROM QunList90;
(5)sql實現列數據重復時合並擴展閱讀:
SQL參考語句
刪除表
drop table tabname--這是將表連同表中信息一起刪除但是日誌文件中會有記錄
刪除信息
delete from table_name-這是將表中信息刪除但是會保留這個表
增加列
Alter table table_name add column_name column_type [default 默認值]--在表中增加一列,[]內的內容為可選項
『陸』 sql合並重復數據並求和
***********************
根據你的補充補充回答:
***********************
select a,sum(b) as 記錄數,max(c) as c
from 表名
group by a;
---
以上,希望對你有所幫助。
『柒』 SQL如何將某一列中相同的數據合並
SELECT GROUP_CONCAT( 欄位名 ) FROM 表名
並將該欄位 在WHERE條件下 GROUP BY
『捌』 sql合並列的重復數據
***********************
根據你的補充補充回答:
***********************
select
a,sum(b)
as
記錄數,max(c)
as
c
from
表名
group
by
a;
---
以上,希望對你有所幫助。
『玖』 SQL 兩列中有相同的值,怎麼合並起來
select (case when a is null then b else a end) as class,
((case when sl is null then 0 else sl end) +
(case when ssl is null then 0 else ssl end)) as amout
from A
『拾』 sql合並重復的欄位
一句話搞定,這只是一個簡單的交叉查詢問題:
1.
方法1:
ACCESS有向導的,在查詢視圖里找到上面[插入]菜單,選擇交叉查詢,交叉查詢要求,必須有值進行計算,必須有列進行分類,必須有行進行分組,但N個組只能交叉1列數據,所以你就該把
數量
的合計
作為值
產品型號
分組
作為列用來分類
其他欄位
分組
作為行用來分組
明白沒,如果還沒明白就用代碼
2.
方法2用代碼:(看仔細我的代碼怎麼寫的格式不能錯)
TRANSFORM
Sum(數目)
as
數量合計
Select
訂單號,
姓名,
商品單價,
配送方式,
數量合計*單價
as
商品金額,
IIF(配送方式=韻達快遞,12,0)
as
配送金額,
配送金額+商品金額
as
金額合計
From
Order
Group
By
訂單號,
姓名,
商品單價,
配送方式,
數量合計*單價,
iif(配送方式='韻達快遞',12,0),
配送金額+商品金額
PIVOT
Order.產品型號;
看懂沒,直接復制進去檢查一下符號用一下.
交叉查詢語句是這么寫的:
TransForm
統計函數體
Select
分組行的欄位名...欄位名
From
表名
Group
By
分組的欄位名
Pivot
作為列的欄位名;
統計函數體就是交叉計算的結果,他叫
值,分組行的欄位名,是作為行的,他的作用就是體現每條記錄的詳細特徵,Group
By關鍵字是針對分組匯總的結束語,Pivot是將行轉換成列,記住,只能計算一個列,
在SQL中和在ACCESS語句都可以實現,下面這些哥們沒試過,不代表沒辦法實現,在資料庫中這種演算法很普遍,這叫做交叉查詢