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字串
- mysql-列合併成行方式MySql
- SQL多行變一列SQL
- 博鰲亞洲論壇:把資料變成行動
- Excel將一列資料變為兩列Excel
- 行變列構建sql語句SQL
- php 一維陣列變多維PHP陣列
- T-SQL——將字串轉為單列SQL字串
- oracle中多列轉行Oracle
- MySQL的sql語句取shell程式中的for in多變數一例MySql變數
- 如何:在執行 SQL 工作中將結果集對應至變數SQL變數
- PL/SQL變數值可變在程式中會變嗎?SQL變數
- php中將驗證變數,,防止非法變數PHP變數
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- 10.2 多列關聯cardianlity公式變化公式
- SQL Server一行多列求最大值SQLServer
- js將一個陣列追加到原陣列中JS陣列
- SQL Server中的全域性變數SQLServer變數
- 《雙人成行》主策劃Filip Coulianos:如何將多種遊戲機制融為一體丨N.GAME遊戲GAM
- PLSQL Language Referenc-PL/SQL集合和記錄-可變陣列-正確地使用可變陣列SQL陣列
- 多數直播網站無牌照 “視聽證”成行業最大門檻網站行業
- js如何將陣列中的元素清空JS陣列
- ruby中將陣列轉換成hash陣列
- 將一個多維陣列徹底的降維陣列
- 層級查詢並將層級拆分成多列
- 將多列值轉換為一行顯示
- SQL server中的日期變數縮寫SQLServer變數
- SQL Server 中將字串按數字排序SQLServer字串排序
- 多個變數如何傳到awk中變數
- 繫結變數在靜態sql和動態sql中變數SQL
- 在VUE中改變陣列、物件。頁面沒有變化Vue陣列物件
- 將SQL Server中所有表的列資訊顯示出來SQLServer
- 陣列在記憶體中的變化陣列記憶體
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- Python中如何將字串變成數字?Python字串
- 關於pl/sql中的繫結變數SQL變數
- 如何將一個陣列中的元素插入另一個陣列陣列
- API 返回多維陣列,子陣列總變成物件,該怎麼處理好呢?API陣列物件