【发布时间】:2018-02-05 16:51:07
【问题描述】:
我正在尝试创建一个“错误列”并将条件放入“Case when”中。我收到以下错误:
在上下文中指定的非布尔类型的表达式 预计会出现“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__] IS NULL THEN ... -
看起来每个人都发现了不同的错误,是的,有很多。
-
这是非标准的 SQL 开头(例如
[..]样式标识符,使用"表示字符串文字)。您使用的是哪个 DBMS?