SQL轉換行和列

2021-06-09 01:49:52 字數 769 閱讀 9785

第一:pivot

用於將列值旋轉為列名(即行轉列)。

pivot

的一般語法是:

pivot

(聚合函式(列1) for 列2 in (

列2在db中儲存的值

) )as p

備註:列1:顯示在列2下面的值,列2:要轉換的列。

例子:select

*from

(select

userid,username,age

from r_user

) as a

pivot(max(age) for a.username in

(羅納爾多,科比,加內特,皮爾斯,易建聯

)) as aa

在後台使用該sql 時,可以定義string sqlpivot=@"(上面的語句)aaa";

sqlpivot=

sqlpivot

.replace("\r\n", " ").replace("\n", " ").replace("\r", " "); 去掉轉義字元

現在可以使用sqlpivot 。

總結:聚合函式:此時獲取人員姓名使用max 或者min結果相同,因為年齡只有乙個。有時候使用count 或者sum 根據需求而定。

第二:

unpivot

用於將列名轉為列值(即列轉行)

語法:unpivot(

value_column

for pivot_column

in() )

例子:待續

sqlserver 行列轉換 行傳換為列

1.原始查詢 select s.name as shiftname,h.businessentityid,d.name asdepartmentname from humanresources.employeedepartmenthistory h inner join humanresources...

Oracle行轉換列SQL語句

select fmonth,sum decode factionid,1,fcount,0 as factionid1,sum decode factionid,2,fcount,0 as factionid2 from select fmonth,factionid,count as fcount...

SQL列中含有換行符的查詢和替換方法

最近在獲取資料時,發現程式讀取的字段中含有 r n字元,檢查資料庫表中的資料,發現是varchar字串中包含了換行符。匯入資料導致了這一情況出現。不同系統的行結尾符號並不同,如下 select from table where collum like char 10 linux下的換行符 or co...