當前位置:首頁 » 編程語言 » sql實現列數據重復時合並
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql實現列數據重復時合並

發布時間: 2022-11-22 14:38:57

『壹』 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'

三、用標量函數查詢:

  1. 創建標量函數:

    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;

  2. 用標量函數查詢:

    select cid,dbo.b(cid) as id from stuUnion group by cid

  3. 用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語句都可以實現,下面這些哥們沒試過,不代表沒辦法實現,在資料庫中這種演算法很普遍,這叫做交叉查詢