列轉行時,無法確認所轉列數時,處理語句

2021-09-30 09:55:29 字數 833 閱讀 4807

if not object_id('class') is null

drop table class

gocreate table class([student] nvarchar(2),[數學] int,[物理] int,[英語] int,[語文] int)

insert class

select n'李四',77,85,65,65 union all

select n'張三',87,90,82,78

go--2000:

動態:declare @s nvarchar(4000)

select @s=isnull(@s+' union all ','')+'select [student],[course]='+quotename(name,'''')--isnull(@s+' union all ','') 去掉字串@s中第乙個union all

+',[score]='+quotename(name)+' from class'

from syscolumns where id=object_id('class') and name not in('student')--排除不轉換的列

order by colid

exec('select * from ('+@s+')t order by [student],[course]')--增加乙個排序

這裡要注意一點的,這裡使用了syscolumns系統表,所以大家在做測試的時候,不要使用臨時表#temp這樣的表,因為這個值

where id=object_id('class')
是空的

hive 列轉行 HQL 行轉列,列轉行

1 相關函式 concat string a col,string b col 返回輸入字串連線後的結果,支援任意個輸入字串 concat ws separator,str1,str2,它是乙個特殊形式的 concat 第乙個引數剩餘引數間的分隔符。分隔符可以是與剩餘引數一樣的字串。如果分隔符是 n...

python 列轉行 SQL 行轉列,列轉行

sql 行轉列,列轉行 行列轉換在做報表分析時還是經常會遇到的,今天就說一下如何實現行列轉換吧。行列轉換就是如下圖所示兩種展示形式的互相轉換 行轉列假如我們有下表 select from student pivot sum score for subject in 語文,數學,英語 通過上面 sql...

行列轉換(列轉行)

行列轉換 列轉行 create table tb 姓名 nvarchar 20 數學 int,英語 int,語文 int go insert into tb select 李四 87,82,0 union select 張三 93,78,98 goselect from tb godeclare s...