sql 中將多列變成行
因為需要將一個訂單對應的多個訂單屬性一次性顯示出來,因此需要將同屬一個訂單的訂單屬性列轉化成行。google 了下倒是找到一個可行的方法,並進行了實現。但是卻不知其所以然。
首先是建立一個函式:
Create function fPropertyMerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+sd.PropertyName+':'+ssp.PropertyValue from dbo.ServiceSubscriptionProperty ssp
inner join dbo.ServiceSchemaDefinition SD
on ssp.PropertyID=sd.PropertyID
where
if len(@str)>0 begin set @str=right(@str,len(@str)-1) end
return(@str)
end
然後進行呼叫, 比如進行如下測試:
print dbo.fPropertyMerg(2292)
結果顯示:
License數量:10,使用期限:12,空間容量:1
如願所行。
開始並不明白函式的一個select 語句為何能返回多值的合併行。因為總覺他並沒有利用遊標的功能。後來一思量,這個select 的關鍵是在於利用串變數,進行了串的追加功能,如果單獨分析這個select 語句來說,其實同樣是按照次序將多列選出來了,只是在每取一列的時候,都將值追加到了串中,所以最終返回的就是一個多值串。
有些邏輯真是微妙啊, 當然這是建立在理解原理的基礎上,進行稍微的變化,得到美妙的結果。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/523892/viewspace-1005163/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- T-SQL——將字串轉換為多列SQL字串
- T-SQL——將字串轉為單列SQL字串
- Excel將一列資料變為兩列Excel
- 博鰲亞洲論壇:把資料變成行動
- oracle中多列轉行Oracle
- 利用shell中awk和xargs以及sed將多行多列文字中某一列合併成一行
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- SQL Server 中將字串按數字排序SQLServer字串排序
- 《雙人成行》主策劃Filip Coulianos:如何將多種遊戲機制融為一體丨N.GAME遊戲GAM
- 將一個多維陣列徹底的降維陣列
- 層級查詢並將層級拆分成多列
- SQL 行轉列,列轉行SQL
- SQL列轉行SQL
- SQL 已死,但 SQL 將永存!SQL
- Oracle 中定位重要(消耗資源多)的SQLOracleSQL
- 【TUNE_ORACLE】列出SQL謂詞中需要建立索引的列SQL參考OracleSQL索引
- Spark SQL中列轉行(UNPIVOT)的兩種方法SparkSQL
- Python中如何將字串變成數字?Python字串
- 在VUE中改變陣列、物件。頁面沒有變化Vue陣列物件
- Mybatis 中將 SQL 查詢記錄到控制檯MyBatisSQL
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- 如何將xstring中多餘的00去掉
- API 返回多維陣列,子陣列總變成物件,該怎麼處理好呢?API陣列物件
- SSIS中Sql任務中獲取系統變數的方式SQL變數
- JavaScript語法中將json轉成陣列JavaScriptJSON陣列
- sql 判斷 某列中是否包含 某種符號SQL符號
- cmd命令列下用命令執行SQL指令碼到SQL Server資料庫中命令列SQL指令碼Server資料庫
- SQL Server解惑——查詢條件IN中能否使用變數SQLServer變數
- Excel 如何批次將矩陣(多行多列)資料轉為單行或單列資料Excel矩陣
- vue中陣列變動不被監測問題Vue陣列
- 7-1將陣列中的數逆序存放陣列
- Java中將 int[] 陣列 轉換為 List(ArrayList)Java陣列
- SQL查詢 多列合併成一行用逗號隔開stuff()SQL
- 陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列陣列
- My SQL 列轉行操作SQL
- 在 Laravel 中將 PHP 變數轉化為 JavaScript 變數並輸出LaravelPHP變數JavaScript
- 多維陣列陣列
- 如何在 .Net 7 中將 Query 繫結到陣列陣列
- oracle一列拆分為多列Oracle