1

我对 SQL 很陌生,主要使用 Excel,我使用的是 Oracle BI,需要添加一个执行以下操作的列。

=IF(A1="EG123456",B1,"")

我已经走到这一步了。

CASE WHEN "table1"."clientnumber" = 'EG123456' 
THEN "table1"."BookingID" 
ELSE '' 
END

它接受公式,但是当我查看结果时,它显示“查看显示错误”

4

1 回答 1

0

BookingID 可能是 CHAR/VARCHAR 以外的类型;例如,也许它是一个数字字段?来自 CASE 的所有可能返回必须是兼容类型。

可以使用ELSE NULL代替ELSE ''吗? NULL将与所有类型兼容,并且会显示为“空白”;但根据您进一步处理结果的方式,您可能需要注意处理 NULL 值的“奇怪”规则。

另一种选择可能是将 BookingID 转换为 CHAR 类型。例如,如果你知道它永远不会超过 20 个字符,你可以说THEN CAST(BookingID AS CHAR(20))

于 2016-10-24T17:01:08.223 回答