重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
select * from
目前創新互聯已為近1000家的企業提供了網站建設、域名、網站空間、成都網站托管、企業網站設計、北海街道網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
(
select id as Name , Subject = 'id' , Result = id from tb1
union all
select id as Name , Subject = 'yytc' , Result = yytcfrom tb1
) t
order by name , case Subject when 'id' then 1 when 'yytc' then 2 end
沒有數據庫,沒法給你測試,你用這個試試,看好不好使
如果不好使,可以訪問這個地址:
里邊有行轉列,列轉行,應該有你想要的,你看看
根據樓主的描述,特為樓主總結如下,在SqlServer里面行列轉換的語法一般是: select 字段, sum(case when 要轉換的行單元格的字段名='行字段內容' then 聚合的字段名 end ) as 自定義的列標題1 from 表的名字 group by 字段(注意,分組聚合就是根據這個字段來的,具體到樓主的問題,這里的字段就應該是org_id) 如果有多個列,之間用逗號隔開就可以了,最后一個參數和from之間不要用逗號。 具體到樓主的顯示效果就可以這樣寫了。代碼參考如下: Select org_id , sum(case when channel ='團險' then PREM end) As '團險保費' , sum(case when channel ='個險' then PREM end) As '個險保費 From 你的表名 Group By org_id
PIVOT 用于將列值旋轉為列名(即行轉列),在 SQL Server 2000可以用聚合函數配合CASE語句實現
PIVOT 的一般語法是:PIVOT(聚合函數(列) FOR 列 in (…) )AS P
注意:PIVOT、UNPIVOT是SQL Server 2005 的語法,使用需修改數據庫兼容級別(在數據庫屬性-選項-兼容級別改為 90 )
SQL2008 中可以直接使用
完整語法:
table_source
PIVOT(
聚合函數(value_column)
FOR pivot_column
IN(column_list)
)
View Code
UNPIVOT 用于將列明轉為列值(即列轉行),在SQL Server 2000可以用UNION來實現
完整語法:
table_source
UNPIVOT(
value_column
FOR pivot_column
IN(column_list)
)
row_number() over(partition by id order by y) 這是個分析函數,意思是以id分組,y排序,給每一行一個從1開始的行號,一般去重的時候用的比較多
sqlserver自帶得有一個stuff函數,可以結合group by 和distinct使用,可以實現行變列