SQL 多行轉成一列
(
[id] [nchar] (10) COLLATE Chinese_PRC_CI_AS NULL,
[name] [nchar] (10) COLLATE Chinese_PRC_CI_AS NULL,
[value] [nchar] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
--建立表
INSERT INTO dbo.a
( id, name, value )
VALUES ( N'1', -- id - nchar(10)
N'張三', -- name - nchar(10)
N'1' -- value - nchar(10)
),
( N'2', -- id - nchar(10)
N'張三', -- name - nchar(10)
N'2' -- value - nchar(10)
),
( N'3', -- id - nchar(10)
N'李四 ', -- name - nchar(10)
N'1' -- value - nchar(10)
),
( N'4', -- id - nchar(10)
N'李四', -- name - nchar(10)
N'2' -- value - nchar(10)
),
( N'5', -- id - nchar(10)
N'王五', -- name - nchar(10)
N'1' -- value - nchar(10)
),
( N'6', -- id - nchar(10)
N'王五', -- name - nchar(10)
N'2' -- value - nchar(10)
)
--插入例子資料
SELECT * FROM a
--查詢表
SELECT rTRIM(a.value)+',' FROM a FOR XML PATH('')
--把value列拼接起來,隔開
SELECT b.name,
(SELECT rTRIM(value)+',' FROM a WHERE name=b.name FOR XML PATH('')) AS valuenew FROM dbo.a AS b GROUP BY name
--按照name分組,計算當前name的value值的拼接
SELECT name,LEFT(valuenew,LEN(valuenew)-1)as valuenew,LEN(LEFT(valuenew,LEN(valuenew)-1)) as valuenewlen,LEN(a.valuenew)AS 原長度 FROM (
SELECT b.name,
(SELECT rTRIM(value)+',' FROM a WHERE name=b.name FOR XML PATH('')) AS valuenew FROM dbo.a AS b GROUP BY name ) a
--left方法保留字串的長度減一的字串
--或
SELECT name,STUFF(a.valuenew,LEN(a.valuenew),1,'') as valuenew ,LEN(STUFF(a.valuenew,LEN(a.valuenew),1,'')) as valuenewlen,LEN(a.valuenew)AS 原長度 FROM (
SELECT b.name,
(SELECT rTRIM(value)+',' FROM a WHERE name=b.name FOR XML PATH('')) AS valuenew FROM dbo.a AS b GROUP BY name) a
--stuff方法把字串最後一位開始,第一字元刪除,插入空
--去除拼接的最後一個字元逗號
相關推薦
SQL 多行轉成一列
CREATE TABLE [dbo].[a]([id] [nchar] (10) COLLATE Chinese_PRC_CI_AS NULL,[name] [nchar] (10) COLLATE Chinese_PRC_CI_AS NULL,[value] [nchar]
SQL Server 行轉列,列轉行。多行轉成一列
一、多行轉成一列(並以","隔開)表名:A表資料:想要的查詢結果:查詢語句:SELECT name , value = ( STUFF(( SELECT ',' + value FROM A
oracle 多列轉成一列(列轉行)、 行轉列
1.多列轉成一列(列轉行) --6列轉成兩列(列轉行) 這就是最常見的列轉行,主要原理是利用SQL裡面的union with temp as (select a.iid_sn, a.product_name, a.sales_figures, a
oracle資料庫把某行資料轉成一列資料
select running_time, running_user, algorithm_id, algorithm_list_id, name1, name2, ROWNUM, wm_concat(t
SQL多行轉多列
表內容: 姓名 課程 分數 張三 語文 74張三 數學 83張三 物理 93張三 德語 null李四 語文 74李四 數學 84李四 物理 94李四 英語 80想變成(得到如下結果): 姓名 語文 數學 物理 英語 德語---- ---- ---- ----李四 74
sql多行拼接成字串
舉個例子: 產品表:ID,productname,CompanyInfo_id; 1 aaa 1 2 bbb
sqlserver把列說明轉成一列資料
sqlserver中可以對庫說明、表說明、表的列說明,這些說明起到註釋的作用。 有天同事問到如何把列說明變成一個欄位轉成表的資料,就不用那麼麻煩每次去改表了。 在資料庫中可以這樣查 先在shiyan1資料庫中 EXEC [shiyan1].sys.sp_addextende
sql多行轉一行字串
方法1: DECLARE @STR VARCHAR(8000) SELECT @STR = ISNULL(@STR+',','')+CAST(MenuID AS NVARCHAR) FROM (SEL
postgresql 9.3 自定義聚合函式實現多行資料合併成一列
前言 常見的一種需求,如下圖(1): 目前需要按右邊的factor_code進行分組,將左邊的behavior_code這一列通過指定分隔符連線起來,比如通過<br /> 來連線,理想的效果應當是如下圖(2)這樣: 下面就來討論一下實現
MSSQL將多行資料拼接成一列
select e_uid, base_no = (stuff((select ';' + base_no from e_baseuid where e_uid = a.e_uid for xml path('')),1,1,'')), e_usetype = (stuff((
資料庫一列多行轉一行多列
如題: select max(case when name='1' then [temp] else null end) as temp1 , max(case when name='2' t
oracle 多行轉一列,一列轉多行
select t.rank, t.Name from t_menu_item t; 10 CLARK 10 KING 10 MILLER 20 ADAMS 20 FORD 20 JONES 20 SCOTT 2
SQL 行轉成字符串,隔開
char varchar XML arch normal logs sql log 字符串 select stuff((select ‘,‘+ CONVERT(VARCHAR(50),lateminute) from T_Attendance_Abnormal WHER
sql的行轉列(PIVOT)與列轉行(UNPIVOT)
列轉行 gif 而且 碼農 實現 score username info rect 在做數據統計的時候,行轉列,列轉行是經常碰到的問題。case when方式太麻煩了,而且可擴展性不強,可以使用 PIVOT,UNPIVOT比較快速實現行轉列,列轉行,而且可擴展性強
sql service 行轉列操作
ice pack 通過 group by img ora _id select package 通過行換列處理之後: SELECT s.AREA_NAME, max(CASE s.TYPE WHEN ‘CPU‘ THEN s.PRICE ELSE 0 end)CPU,
SQL Server 行轉列,列轉行
結果 name pre toolbar des null 表名 再次 arch 一、多行轉成一列(並以","隔開) 表名:A 表數據: 想要的查詢結果: 查詢語句: SELECT name , value = ( STUFF(( SELECT
oracle 行轉列,多行轉列
問題描述: 應公司要求,設計功能,一個ID,對應不同的值,展示的時候不同的值拼接展示,如何實現; 解決思路: 1) 拼接字串,想到了 oracle Function(),這樣肯定能實現,但是比較麻煩;
excel技能集1-科學計數法正常顯示+多列文字指標匯合成一列指標
如何使自動顯示為科學記數法數字文字轉化為顯示文字型別 選中目標行 選擇【分列】 點選下一步 直到可以選擇【列資料格式】那步 修改選項為文字 點選完成 如何把多列指標粘合成一列指標(批量匯入sql時用到的傻瓜方法) 使用phonetic函式 把N行M列
單純的將資料行轉成列怎麼實現(急急急)
已解決一個web登入系統的如何訪問資料庫 innobackupex備份mysql速度如何? 求助一個mysql儲存過程的問題51 已解決mysqlcluster關於管理節點的問題 匭鼐uth茸陀儼http://baoba
查詢每個學生每門課程的成績,sql server行轉列實現
本人經常寫sql server指令碼,有時需要行轉列,這裡做個筆記。 練習指令碼 -- 學生表 CREATE TABLE student ( stuid VARCHAR(16) NOT NULL, stunm VARCHAR(20) NOT NULL, PRI