我在SQL Sever 2005中有一個表,其中許多列僅包含NULL或0或0.0。 我想要一個查詢來查找該表中SUM大於0的每一列的名稱,即該表至少包含一行,其值不爲零且大於零。SQL查找表中所有列的SUM大於零的所有列的名稱
謝謝。
我在SQL Sever 2005中有一個表,其中許多列僅包含NULL或0或0.0。 我想要一個查詢來查找該表中SUM大於0的每一列的名稱,即該表至少包含一行,其值不爲零且大於零。SQL查找表中所有列的SUM大於零的所有列的名稱
謝謝。
最簡單我相信會採取以下語句的輸出並將其作爲腳本運行。
SELECT SELECT COUNT(*), ''' + name + ''' FROM dbo.ATable WHERE ' + name + '> 0'
FROM sys.columns sc
WHERE OBJECT_NAME(OBJECT_ID) = 'ATable'
我不知道了手系統表,但你可以通過查看類型的各個列的排除不是任何一個數字。如果我沒有弄錯,你可以加入sys.types
如果你需要一個通用的解決方案,它可以concot一個動態語句傳遞給execsql,但這將是矯枉過正的一次性修復。
你想要哪一個:所有列的名稱,或只是表示所有字段是否爲非空且> 0的行還是行?兩者的答案會有所不同。 :) – 2010-11-01 19:15:11
@djacobson我想要這些列的名稱。我想讓這個查詢工作,假設我不知道表中列的名字。謝謝! – Adam 2010-11-01 19:20:43
這是一個存儲過程還是它必須是內聯查詢? – 2010-11-05 19:52:41