『壹』 sql中內容都為字元型的豎版表轉橫版,如何實現
Word默認為一節,而一節的頁面格式是相同的,若想把一個WORD文件中的每一頁隨意設置成橫版或是豎版,必須將其設置為單獨一節,這樣就可以單獨設置了。
假設有一個10頁文檔,想讓其中第3頁為橫板,設置步驟:
1、將游標放在第3的首位置,單擊頁面布局---->分隔符---->分節符---->下一頁,如圖所示;
2、將游標放在第3頁的尾部,重復上面的操作上,使第3頁成為單獨一節;
3、游標放在第3頁,單擊頁面布局---->紙張方向---->橫向即可,如圖所示。
『貳』 SQL 豎表變橫表,自適應的,誰能幫看看。
用sql本身難以實現。 你可以對生成的豎表(轉成csv格式 或 txt 格式)文件,再用pascal 或 c 語言編制轉換程序 進行後處理。
『叄』 SQL 如何查詢時 豎著的數據 橫著顯示
你這個是將縱表轉換為橫表,例如如下數據:
'wangming', 'shuxue', 100
'wangming', 'yuwen', 90
'wangming', 'yingyu', 140
可以使用如下語句處理:
select a.v_name,a.v_score shuxue,b.v_score yuwen,c.v_score yingyu from temp_1 a,temp_1 b,temp_1 c
where a.v_name=b.v_name
and a.v_name=c.v_name
and a.v_name='wangming'
and a.v_course='shuxue'
and b.v_course='yuwen'
and c.v_course='yingyu';
『肆』 sql縱向數據變橫向數據正負
.sql縱向數據變橫向數據正負
SQL縱向數據變橫向數據的正負取決於所使用的轉換函數。一般來說,使用的轉換函數會影響正肆氏橋負裂猛的結果。例如,使用PIVOT函數將縱向數據轉換為橫向數據時,結果可能是正值,也可能是核陪負值。
『伍』 sql 裡面怎麼把豎表變成橫表
select 姓名,sum(case when 科目='數學' then 分數 end) as 數學,sum(case when 科目='語文' then 分數 end) as 語文,sum(case when 科目='英語' then 分數 end) as 英語 from 表名
group by 姓名
『陸』 如何在sql 將查找出來的數據變成橫向顯示
您好,很高興為您解答。
看幾個實例。
select
max(casenamewhen'課桌式'then[count]else0end)as課桌式,
max(casenamewhen'分組式'then[count]else0end)as分組式,
....
from
tb
createtabletest([name]varchar(10),[count]int)
go
inserttest
select'課桌式',100unionall
select'分組式',360unionall
select'劇院式',200unionall
select'董事會',150unionall
select'U型',100unionall
select'宴會型',150
select*fromtest
declare@sqlvarchar(max)
select@sql=isnull(@sql+',','')+'max(casewhen[name]='''+[name]+'''then[count]end)as'''+[name]+''''
from
(select[name]fromtestgroupby[name])t
print@sql
exec('select'+@sql+'fromtest')
droptabletest
/*
(6row(s)affected)
namecount
---------------------
課桌式100
分組式360
劇院式200
董事會150
U型100
宴會型悔帆150
(6row(s)affected)
U型董事會分組式劇院式課桌昌前襪式宴會型
------------------------------------------------------------------
100150360200100耐激150
(1row(s)affected)
*/
如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】
希望我的回答對您有所幫助,望採納!
~O(∩_∩)O~
『柒』 如何通過sql將表中豎向數據轉換成橫向數據
行列轉換等經典SQL語句
參考資料:http://blog.csdn.net/kiki113/archive/2009/04/24/4105929.aspx
1.--行列轉換
原表: 姓名 科目 成績
張三 語文 80
張三 數學 90
張三 物理 85
李四 語文 85
李四 物理 82
李四 英語 90
李四 政治 70
王五 英語 90
轉換後的表: 姓名 數學 物理 英語 語文 政治
李四 0 82 90 85 70
王五 0 0 90 0 0
張三 90 85 0 80 0
實例:
create table cj --創建表cj
(
ID Int IDENTITY (1,1) not null, --創建列ID,並且每次新增一條記錄就會加1
Name Varchar(50),
Subject Varchar(50),
Result Int,
primary key (ID) --定義ID為表cj的主鍵
);
--Truncate table cj
--Select * from cj
Insert into cj
Select '張三','語文',80 union all
Select '張三','數學',90 union all
Select '張三','物理',85 union all
Select '李四','語文',85 union all
Select '李四','物理',82 union all
Select '李四','英語',90 union all
Select '李四','政治',70 union all
Select '王五','英語',90
--行列轉換
Declare @sql varchar(8000)
Set @sql = 'Select Name as 姓名'
Select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result else 0 end) ['+Subject+']'
from (select distinct Subject from cj) as cj --把所有唯一的科目的名稱都列舉出來
Select @sql = @sql+' from cj group by name'
Exec (@sql)
2. 行列轉換--合並
原表: 班級 學號
1 1
1 2
1 3
2 1
2 2
3 1
轉換後的表: 班級 學號
1 1,2,3
2 1,2
3 1
實例:
Create table ClassNo --創建表ClassNo
(
ID Int IDENTITY(1,1) not null, --創建列ID,並且每次新增一條記錄就會加1
Class Varchar(50), --班級列
Number Varchar(50), --學號列
Primary Key(ID) --定義ID為表ClassNo的主鍵
);
--Truncate Table ClassNo
--Select * from ClassNo
Insert Into ClassNo
Select 1,1 Union all
Select 1,2 Union all
Select 1,3 Union all
Select 2,1 Union all
Select 2,2 Union all
Select 3,1
創建一個合並的函數
--Drop Function KFReturn
Create Function KFReturn(@Class Varchar(50))
Returns Varchar(8000)
as
Begin
Declare @str Varchar(8000)
Set @str = ''
Select @str = @str + cast(Number as Varchar(50)) + ',' from ClassNo Where Class = @Class
Set @str = SubString(@str,1,len(@str)-1)
Return(@str)
End
--調用自定義函數得到結果
Select Distinct Class,dbo.KFReturn(Class) From ClassNo
3:列轉行
--Drop Table ColumnToRow
Create table ColumnToRow
(
ID Int IDENTITY(1,1) not null, --創建列ID,並且每次新增一條記錄就會加1
a int,
b int,
c int,
d int,
e int,
f int,
g int,
h int,
Primary Key(ID) --定義ID為表ColumnToRow的主鍵
);
--Truncate Table ColumnToRow
--Select * from ColumnToRow
Insert Into ColumnToRow
Select 15,9,1,0,1,2,4,2 Union all
Select 22,34,44,5,6,7,8,7 Union all
Select 33,44,55,66,77,88,99,12
Declare @sql Varchar(8000)
Set @sql = ''
Select @sql = @sql + rtrim(name) + ' from ColumnToRow union all Select ' from SysColumns Where id = object_id('ColumnToRow')
Set @sql = SubString(@sql,1,len(@sql)-70)
--70的長度就是這個字元串'from ColumnToRow union all Select ID from ColumnToRow union all Select ',因為它會把ID這一列的值也算進去,所以要把它截掉
Exec ('Select ' + @sql + ' from ColumnToRow')
『捌』 sql server 縱表轉橫表
如果單純是你如上數據的話這樣:
創建表:
createtablet
(idint,
orderidint,
prfnoint,
prfidvarchar(10));
insertintotvalues(16385,171202,1,'FB065_1');
insertintotvalues(16385,171202,2,'FB065_06');
insertintotvalues(16385,171202,3,'FB065_06');
insertintotvalues(16385,171202,4,'FB065_06');
insertintotvalues(16386,171202,1,'FB065_1');
insertintotvalues(16386,171202,2,'FB065_06');
insertintotvalues(16386,171202,3,'FB065_06');
insertintotvalues(16386,171202,4,'FB065_06');
執行:
selectid,orderid,
max(casewhenprfno=1thenprfidend)prfid1,
max(casewhenprfno=2thenprfidend)prfid2,
max(casewhenprfno=3thenprfidend)prfid3,
max(casewhenprfno=4thenprfidend)prfid4
fromtgroupbyid,orderid
結果:
如果需求復雜的話,就要改別的方法了。
『玖』 SQL豎表轉換為橫表,跪求大俠幫忙!
建表及插入數據
createtablet(姓名varchar(10),課程varchar(10),分數int)
insertintotvalues('張三','語文',74)
insertintotvalues('張三','數學',83)
insertintotvalues('張三','物理',93)
insertintotvalues('李四','語文',74)
insertintotvalues('李四','數學',84)
insertintotvalues('李四','物理',94)
執行語句
select姓名,
'語文'課程1,sum(casewhen課程='語文'then分數else0end)成績1,
'物理'課程2,sum(casewhen課程='物理'then分數else0end)成績2,
'數學'課程3,sum(casewhen課程='數學'then分數else0end)成績3
fromt
groupby姓名
運行結果
『拾』 請問Sql server如何把一個內連接的輸出的表格橫向顯示
普通sql很難做,要用sqlserver存儲過程,用游標循環shorename的表,然後用case when一個一個拼起來
比如游標里寫
create table aa as select osid,osuser,ostime,sum(case when shopname=@shopname and then osnumber else 0 end) as @shopname
from aa, shopname where aa.osid=shopname.osid
這樣表aa在循環中每次都加上一個新shopname欄位,直到游標shopname循環完畢,思路就是這樣,最後再寫個delete語句,把aa表裡osnumber=0刪掉就可以了,因為它都是表連接時由於shopname不匹配產生的垃圾數據