第一: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...