2013-04-25 18 views
0

我想爲在SQL Server中檢查的行數計算一個數值。我之前在客戶端使用.NET代碼完成了此操作。我試圖在一個SQL Server腳本內完成這個工作,因爲基於用戶的是一個像輸入表一樣的Excel電子表格。函數來評估哪些行不爲空並返回一個INT

周例

Sun = 1 
Mon = 2 
Tue = 4 
Wed = 8 
Thr = 16 
Fri = 32 
Sat = 64 

輸入表

SYSID SUN MON TUE WED THR FRI SAT 
----- --- --- --- --- --- --- --- 
    1 0 0 1 0 1 0 0 
    2 1 1 1 1 1 1 1 
    3 0 0 0 1 0 0 1 

所需的結果

SYSID DayOfWeek 
----- --------- 
    1  20 
    2  127 
    3  68 

的天沒有寫128組案例的陳述或將值寫入另一個表,做一個SUM函數...我想到了一個函數,我傳遞了7個字段的值,並添加了t一起擺放並返回價值。

有沒有更簡單的方法來做到這一點?

+0

我不知道我明白的地方「這行不爲空」融入了這個問題。我看不到空值。 – Amy 2013-04-25 17:31:42

回答

1

如果我明白你正在嘗試做的,這樣的事情可能工作:

SELECT (CASE WHEN SUN=1 THEN 1 ELSE 0 END) 
    + (CASE WHEN MON=1 THEN 2 ELSE 0 END) 
    + (CASE WHEN TUE=1 THEN 4 ELSE 0 END) 
    + (CASE WHEN WED=1 THEN 8 ELSE 0 END) 
    + (CASE WHEN THU=1 THEN 16 ELSE 0 END) 
    + (CASE WHEN FRI=1 THEN 32 ELSE 0 END) 
    + (CASE WHEN SAT=1 THEN 64 ELSE 0 END) 
    AS DayOfWeek 
FROM InputTable 
+0

謝謝...比我想象的要容易得多。 – jlimited 2013-04-25 18:15:11

相關問題