我有一個表是這樣的:如何將這些行值放到沒有循環的列上?
我喜歡得到這樣的:
該行以「住宅」會去屬性列。以'Location'開頭的行將轉到'Location'列,以'error'開頭的行將轉到'ErrorMessage'列。這裏的表格包含像父子一樣的數據。例如,屬性X的位置'abc'有兩個錯誤'1234'和'5678'。
根據迄今爲止的評論,我添加了一些更多的信息。
Aaron Bertrand問: Q1.你可以絕對依賴rowid是連續的嗎?
A1.Rowid依次遞增,但並不總是按照1的相同順序。
讓我們看一個例子。屬性X從rowid = 1開始,屬性Y在8.所有屬性X將在rowid 1到7之間。如果我們轉到另一個級別,則位置abc從2開始,'def'從5開始。位置'abc的所有錯誤'將在rowid 3到4之間。
Q2。是否只有一組數據適用於任何位置/房產組合?或者有可能第15行再次是屬性X,第16行是屬性abc,等等。
A2。 Property-Location組合只有一組數據。所以如果你發現第2行的屬性X - 位置abc,你稍後會在桌子上找到它。
更多信息:這裏的例子只有有限的行數。實際的表格比這更多的行。
到目前爲止,我已經使用WHILE循環獲得了我的結果。我只是想知道是否有任何其他的方式做到這一點,而不經過逐行。我正在使用SQL 2008 R2。
這是一個可怕的數據庫設計。如果你把它分成3個故事:財產,位置和錯誤 - 那麼這至少是一個好的開始 - 那麼你不需要對無關的數據做任何可怕的旋轉 – mp3ferret
Egads,你爲什麼要以這種方式存儲數據第一個地方?根據什麼將這些信息捆綁在一起?事實上,rowid x上的所有內容都屬於上次在rowid
該表格是由第三方提供的文本文件導入的。它不是任何數據庫的一部分。客戶希望從這個文本文件的數據獲得一個數據透視。我的想法是將數據組織成我描述的格式,然後客戶端可以用它做任何事情。 – ahmjt