Access に次のコードがあり、SQL で動作する必要があります。Is 数値部分が私を悩ませています。
Sum([Employee Count]*IIf(IsNumeric([Length]),[Length],0)) AS Total_hours,
IIF()
を式に置き換えCASE
ます。はIsNumeric()
SQL Server で有効です。
Sum([Employee Count]*
case when IsNumeric([Length]) = 1
then [Length]
else 0 end) AS Total_hours,
0 は SUM 集計に影響しないため、"not isnumeric" を除外することもできます。
select
Sum([Employee Count]*[Length]) AS Total_hours
...
where isnumeric([Length]) = 1
以下のコードを参照してください。
declare @table table (abc varchar(100))
insert into @table
select '1'
union select '200'
union select '200A'
select sum(convert(int,abc))
from @table
where isnumeric(abc) = 1