這是我第一次嘗試使用PIVOT。 我正在使用Microsoft SQL Server。使用非數值數據樞軸
所以這裏是我的問題,我一直在閱讀Pivot,並且已經決定它對於將病人數據導出爲格式化文件(即報告,可以打印出來等等)的項目非常有效。
VPatientPlusAllergyData是一個視圖,顯示這是一些數據的採樣結果切出便於閱讀
strPatientFullName strAllergy strAllergyMedication
------------------------------------------------------------
Smith, John Henry Dogs Pounces
Smith, John Henry Dogs Orange Juice
Smith, John Henry Mustard Ketchup
Smith, John Henry Mustard Sugar
這是結果我想
strPatientFullName strAllergy1 strAllergy1Medications strAllergy2 strAllergy2Medications
------------------------------------------------------------------------------------------------------
Smith, John Henry Dogs Pounces, OrangeJuice Mustard Ketchup, Sugar
在W3Schools上閱讀後,觀看Youtube視頻,甚至閱讀本網站上的一些文章,我想知道我正在嘗試做什麼是可能的
下面是一個代碼片段,但我被困在我應該把什麼IN聲明,以及當我開始質疑PIVOT是否解決我的特定問題的可行性。
GO
SELECT
strPatientFullName
,strStreetAddress
,strCity
,strState
,strZipcode
,strPrimaryPhoneNumber
,strSecondaryPhoneNumber
,blnSmoker
,decPackYears
,blnHeadOfHousehold
,dtmDateOfBirth
,strSex
,strAllergy
,strAllergyMedication
,strEmailAddress
,strRecordCreator
FROM (SELECT * FROM VPatientPlusAllergyData) PatientAllergyData
PIVOT
(
MAX(strAllergyMedication)
FOR strAllergy
IN()
)
GO
希望有人更熟悉樞軸會告訴我什麼我失蹤或啓發我一個更有效的解決方案。
感謝您的幫助
******編輯:我已經決定了,雖然我很想把這種操作在服務器端,我的具體應用,它只是簡單的創建大量的視圖然後在客戶端執行SELECT查詢並將它們連接在一起,然後執行「EXPORT PROCESSING」屏幕。 我感謝所有的幫助,也許在一天我會寫一個腳本,並讓它執行服務器端,但目前這項工作足夠好****** ******
編輯:其實,沒關係,我沒有正確地閱讀你的問題。看來,你的問題需要混合旋轉和填充。 – ZLK
假設過敏的值可以是n個,那麼您需要爲此使用'DYNAMIC SQL'。這是一個很好的教程。 http://sqlhints.com/2014/03/18/dynamic-pivot-in-sql-server/ – scsimon