你缺少 「從源代碼」
SELECT
CASE
WHEN myvalue = 1 THEN ISNULL(CAST(1000 AS FLOAT), -1)
WHEN myvalue = 2 THEN ISNULL(CAST(0.00400 AS NUMERIC(13, 4)), -1)
ELSE ISNULL(CAST(0.00400 AS NUMERIC(13, 1)), -1)
END
from (
select myvalue from (
select 1 as myvalue
union
select 2 as myvalue
union
select 3 as myvalue
union
select null as myvalue
) SourceTable
) MainQueryTable
工作正常
你只能運行這個,看看有什麼結果,你必須返回到MainSelect
select myvalue from (
select 1 as myvalue
union
select 2 as myvalue
union
select 3 as myvalue
union
select null as myvalue
) SourceTable
這將返回: myvalue
--------
NULL
請注意在CASE ISNULL THAT ISNULL(CAST(ZZZZ AS FLOAT),-1)
時myvalue的= 1,則不能爲空爲1因爲你有ELSE部分CASE
這是因爲'1 = 1'將始終評估爲TRUE; NO NEED ISNULL
是沒用的
:) – Shiva