SQL知識點之列轉行Unpivot函數_數據庫其它

來源:腳本之家  責任編輯:小易  

[email protected] INTEXEC PROC4 1,2,@M [email protected]@[email protected]在Sqlserver2008上調試需要將@M設為 OUTPUT,才有返回值.否[email protected]結果為NULLwww.13333515.buzz防采集請勿采集本網。

前言

這是總結SQL知識點的第二篇文章,一次只總結一個知識點,盡量說明白。上次我們談到行轉列,用的是Pivot函數,這次我們來談談Unpivot函數。(這里是用的數據庫是SQLSERVER,與其他數據庫是類似的,大家放心看就好)

沒細看,覺得應該用查詢就能解決

先看一個小問題CustomerCustomer

-刪除列 ALTER TABLE 表名 DROP COLUMN column_b 知識點衍生 A.添加新列 ALTER TABLE 表名 ADD 列名 VARCHAR(20) B.修改列名 EXEC sp_rename 'dbo.表名.列名','新列名','COLUMN' C.更改列的數據

在這張圖中,表示的是顧客用不同手機號給Phone1、Phone2、Phone3撥打電話的情況,但是機靈的你,想變個花樣來看看,比如下面這樣的。

你這樣把SQL語句都暴露到客戶端,到時候隨便一個懂點sql知識的人都有可能給你把數據庫毀了。你要自己測試著玩無所謂,要是做項目的話,那還是算了吧!

UnpivotUnpivot

應屆一般都是建表,增,刪,改,查,排序,分組,升序,降序,表連接(左右),有工作經驗那就要求高啦,數據庫優化,數據結構,存儲過程,游標,sql腳本

大家想想看如何實現呢?想下,2分鐘后再看喲

1、打開電腦,點擊開始,找到Sql Server安裝后生成的文件夾,也可以通過搜索Sql Server 找到。2、點擊【配置工具】下的【Sql Server 配置管理器】 3、點擊左側菜單SQL Server 服務,右側會顯示

先創建數據

CREATE TABLE dbo.CustomerPhones( CustomerID INT PRIMARY KEY, -- FK Phone1 VARCHAR(32), Phone2 VARCHAR(32), Phone3 VARCHAR(32));INSERT dbo.CustomerPhones (CustomerID, Phone1, Phone2, Phone3)VALUES (1,'705-491-1111', '705-491-1110', NULL), (2,'613-492-2222', NULL, NULL), (3,'416-493-3333', '416-493-3330', '416-493-3339'); select * from dbo.CustomerPhones

查看數據如下:

DataDataUpivot 實現行轉列

select * from dbo.CustomerPhones -----數據源 unpivot ( Phone FOR Phones IN (Phone1, Phone2, Phone3) ##Phone1、Phone2、Phone3這些列的結果轉為行上的結果,成為一列, ##并且有了新的列名為Phone) up

結果如下:

ResultResult

參考文獻:

1.Use SQL Server's UNPIVOT operator to help normalize output

2.SQL之行轉列Pivot用法

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對真格學網的支持。

不明白“自動匹配”,你是指知識點ID有默認值?還是指試題ID和知識點ID有關系式?ALTER TABLE table_nameADD column_name datatypeAlter table table_nameADD‘知識點ID’IntSelect"試題ID",‘知識點ID’from '填空題'inner join '單項選擇題'ON '填空題'."試題ID"='單項選擇題'.‘試題ID’內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • mysql 行轉列和列轉行實例詳解
  • mysql 列轉行,合并字段的方法(必看)
  • mssql 數據庫表行轉列,列轉行終極方案
  • sql行轉列和列轉行代碼詳解
  • mysql 列轉行的技巧(分享)
  • sql行轉列、列轉行的簡單實現
  • mysql列轉行以及年月分組實例
  • sql server 里的錯誤處理(try catch)
  • 淺析sql server 公共表達式的簡單應用
  • sql update 更新語句用法(單列與多列)
  • sql學習之case when then else end的用法
  • sql中過濾條件放on和where中的區別詳解
  • ado,oledb,odbc,dao,rdo的區別說明
  • 數據庫查詢性能需注意幾點經驗
  • sql 左連接和右連接的使用技巧(left join and right join)
  • redis和memcache的區別總結
  • sql union和union all的使用方法
  • sql多表查詢.如圖,想加一個知識點ID輸出列,自動匹配到對應的試題ID.不知道怎么寫,求教,在線等.
  • 關于sql輸出參數的一個知識點,為什么是這樣?
  • SQL基本知識點 100分求
  • sql server 知識點疑惑
  • sql學期項目問題求助 這個報告應該用哪塊的知識點做啊
  • 怎么用sql語句刪除列
  • javascript里面怎么嵌入可執行的sql語句
  • 數據庫 面試時候面試官常會問到哪些知識點,關于Sql server的。
  • SQL2005 怎么啟動服務?
  • 關于sql server 現在都主流都用什么版本的?
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁數據庫其它mysql 行轉列和列轉行實例詳解mysql 列轉行,合并字段的方法(必看)mssql 數據庫表行轉列,列轉行終極方案sql行轉列和列轉行代碼詳解mysql 列轉行的技巧(分享)sql行轉列、列轉行的簡單實現mysql列轉行以及年月分組實例sql server 里的錯誤處理(try catch)淺析sql server 公共表達式的簡單應用sql update 更新語句用法(單列與多列)sql學習之case when then else end的用法sql中過濾條件放on和where中的區別詳解ado,oledb,odbc,dao,rdo的區別說明數據庫查詢性能需注意幾點經驗sql 左連接和右連接的使用技巧(left join and right join)redis和memcache的區別總結sql union和union all的使用方法sql join on 用法mysql mysqldump命令使用詳解sqlserver、mysql、oracle三種數sql中代替like語句的另一種寫法如何讓sql運行得更快關于adox的相關知識如何取得一個表的所有字段名用逗sql server下數據庫鏈接的使用方sql server 2005的表分區sql 查詢語句積累詳解sqlite中的數據類型sqlserver、mysql、oracle三種數據庫的優sql left join 命令詳解sql prompt--絕好的sql語法提示工具telnet連接操作memcache服務器詳解linux下 mysql oracle 簡單使用手冊sql server 與access、excel的數據轉換數據庫正規化和設計技巧一個多表查詢的sql語句sql小計匯總 rollup用法實例分析
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果