1
我們有一些大型的數據倉庫表。我們的轉換代碼確保所有數值度量列都使用零而不是NULL
用於T-SQL數學。最快的T-SQL將多個列中的零轉換爲NULL
(CASE WHEN NULL or '' then 0)
在最後轉換部分,我們需要把所有的零回NULL
在Analysis Services的MDX使用。試圖確保報告中沒有顯示No Data行。此前設定爲0
爲SQL數學,因爲SQL 1 + NULL = NULL
,我們希望它等於1
where as 1 + NULL in Analysis Services = 1.
它需要大約兩個小時做的每一列/測量單個組語句後面的轉換。我正在尋找一種方法來完成一次讀取表/文件而不是三十三個表掃描。
下面的工作會不會更快?
UPDATE MyTable
SET Col1 = NULLIF(Col1, 0),
Col2 = NULLIF(Col2, 0),
Col3 = NULLIF(Col3, 0)
WHERE (Col1 = 0
OR Col2 = 0
OR Col3 = 0)
你能說清楚你到底想幹什麼嗎?您希望在您指定的數字列中使用空值而不是0爲Analysis Services提供結果集嗎? – SlimsGhost
那麼如何區分最初爲零的值和最初爲NULL的值呢?將零轉換爲NULL,反之亦然會改變AVG的結果。 –
你實際上是否必須使用'update'?在表中的視圖中使用轉換並將此視圖用作Analysis Services中事實表的基礎(或者在DSV中的命名查詢中進行轉換)不會節省更新表的時間? – FrankPl