这是用例根据表中的字段设置变量值的正确方式吗?当字段值从FMC更改为FSC再到FSX时,它不会更改。
SET @coc_no =
CASE
--CHECK FOR FSC
WHEN EXISTS(SELECT * FROM item AS i
WHERE i.Uf_Rex_Item_FSC_DESC = 'FMC')
THEN 'FSC Mix Credit SCS-COC-000000'
WHEN EXISTS(SELECT * FROM item AS i
WHERE i.Uf_Rex_Item_FSC_DESC = 'FSC')
THEN 'FSC 100% SCS-COC-000000'
WHEN EXISTS(SELECT * FROM item AS i
WHERE i.Uf_Rex_Item_FSC_DESC = 'FMX')
THEN 'FSC Mix(80%) SCS-COC-000000'
END发布于 2017-06-16 01:34:19
假设您的[item]表包含每种类型的一些记录,则此语句的结果将始终生成 'FSC Mix Credit SCS-COC-000000‘。
这段代码中没有任何查看当前记录的概念。每次运行时,您都会查看整个表。WHEN表达式是按顺序计算的,因此它将查看第一个表达式,如果您在表中的任何位置对任何 FMC记录执行了操作,则该表达式的计算结果将为true,并且处理将停止。
https://stackoverflow.com/questions/44573467
复制相似问题