我試圖創建一個「錯誤列」並將條件放入'Case when'中。我收到以下錯誤:CASE WHEN錯誤 - 在預計條件的上下文中指定的非布爾類型的表達式,在'THEN'附近
在'THEN'附近預期有 條件的上下文中指定的非布爾類型表達式。
我的查詢是:
SELECT ROWID, [Alternate_number], DELIVERY_DATE, DP1, [DP1__],[DP2],[DP2__],[Deliver_to_EDI_warehouse_number] as EDI_warehouse,[Cube], Null as [Quantity], Null as [Balance_DP],
CASE WHEN isnull([DP1__],0) THEN 'MISSING DP1' WHEN [DP1__]='' THEN 'MISSING DP1'
WHEN isnull([Alternate_number],0) then 'MISSING WIN' when [Alternate_number]= '' then 'MISSING WIN'
WHEN LEN(Delivery_date) = 10 THEN '' WHEN left(right((VIEW_MRP_Splitting_Cube_checker.Delivery_date),11),1) <> '%-%' THEN "DATE 2 TOO LONG"
WHEN right(Left((VIEW_MRP_Splitting_Cube_checker.Delivery_date},11),1) <> '%-%' THEN "DATE 1 TOO LONG"
else 'No Error' end as [Error Type]
from VIEW_MRP_Splitting_Cube_checker
您在條件'WHEN isnull([DP1 __],0)THEN ...'時也有錯誤。改成'WHEN isnull([DP1 __],0)= 0 THEN ...'或'WHEN [DP1__]是NULL然後...' – Rokuto
看起來每個人都發現了不同的錯誤,並且確實有不少錯誤。 –
這是非標準的SQL開頭(例如'[..]'樣式標識符,使用'''字符串文字')。您正在使用哪些DBMS? –