问题描述
我正在尝试使用以下case语句基于嵌套列值更新顶级列
UPDATE
`project.database.table`
SET
Replacetotal= (
SELECT
CASE
WHEN damageLineInfo.MessageCode='MO' AND damageLineInfo.AutomatedEntry=TRUE AND damageLineInfo.LaborInfo.LaborOperation='OPO' AND damageLineInfo.LaborInfo.LaborType='LAB' AND damageLineInfo.LaborInfo.LaborInclInd=FALSE THEN damageLineInfo.LaborInfo.LaborAmt
WHEN damageLineInfo.LaborInfo.LaborOperation='OP9'
OR damageLineInfo.LaborInfo.LaborOperation='OP11'
OR damageLineInfo.LaborInfo.LaborOperation='OP5'
OR damageLineInfo.LaborInfo.LaborOperation='OP12'
OR damageLineInfo.LaborInfo.LaborOperation='OP10'
OR damageLineInfo.LaborInfo.LaborOperation='OP1'
OR damageLineInfo.LaborInfo.LaborOperation='OP21' THEN
CASE
WHEN damageLineInfo.LaborInfo.LaborType='LAB' AND damageLineInfo.LaborInfo.LaborInclInd=FALSE THEN damageLineInfo.LaborInfo.LaborAmt
END
END as Replacetotal
FROM
UNnesT(ServiceBusEnvelope.Payload.RepairOrderFolderAddRq.damageLineInfo) AS damageLineInfo)
WHERE
TRUE
帮助我了解该错误。 如果错误是由于生成的数据具有值列表,那么请获取数据的第一个值。
解决方法
如果错误是因为生成的数据具有值列表
是的,这就是原因
获取数据的第一个值
仅需添加Diff
,如以下示例所示
LIMIT 1