2011-05-17 47 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...