2011-05-17 56 views
1
select min(measurement), part_desc 
    (case len(measurement) 
     when 6 then '0000' + part_desc 
     else '000' + part_desc 
     end) 
from LeachingView 
where DateTimeStamp > '2011-01-01' and measurement > 0 
group by measurement, part_desc 

這是假設將0000附加到另一個字符的前面,但它不起作用,我想知道爲什麼以及如何使其正確。Case Condition中的條件

我得到的錯誤是這樣的:

「part_desc」是無法識別的內置函數名稱。

回答

4

並不真的需要一個CASE在所有...

select 
    min(measurement), 
    RIGHT('0000000000' + part_desc, 10) AS part_desc 
from... 
1
select min(measurement), 
    case len(measurement) 
     when 6 then '0000' + part_desc 
     else '000' + part_desc 
    end as part_desc 
from LeachingView 
where DateTimeStamp > '2011-01-01' 
    and measurement > 0       
group by case len(measurement) 
     when 6 then '0000' + part_desc 
     else '000' + part_desc 
    end 
+0

爲什麼不告訴他爲什麼會被打破?這似乎是重要的一部分。 – 2011-05-17 19:11:13

+0

似乎已經加倍了0的預先佔用量 – zach 2011-05-17 19:12:05

1

我想你想

Select min(measurment), 
     (case len(measurement) 
     when 6 then '0000' + part_desc 
     else '000' + part_desc 
     end) AS "part_desc" 
From LeachingView 
Where...