CASE 语句出错,语法不正确接近","



我已经查找了类似场景的 CASE 语法以及人们遇到的其他问题,但无法专门找到这个问题。 这给了我第一个 case 语句后面逗号附近的语法错误,我不知道为什么。

insert into usmas_Doors_HardwarePrepCodes(HWTypeMask, PrepTypeMask)  
select  
(  
CASE HWType  
WHEN NULL THEN 0  
WHEN 'BT' THEN 1  
WHEN 'CL' THEN 2  
WHEN 'DB' THEN 3  
WHEN 'ED' THEN 4  
WHEN 'FB' THEN 5  
WHEN 'HG' THEN 6  
WHEN 'LK' THEN 7  
WHEN 'SK' THEN 8  
WHEN 'VW' THEN 9 END,
CASE 
WHEN PrepType IS NULL AND Cutout = 0 THEN 0
WHEN PrepType = 'A' AND Cutout = 0 THEN 1
WHEN PrepType = 'H' AND Cutout = 0 THEN 2
WHEN PrepType = 'L' AND Cutout = 0 THEN 4
WHEN PrepType IS NULL AND Cutout = 1 THEN 1024
WHEN PrepType = 'A' AND Cutout = 1 THEN 1025
WHEN PrepType = 'H' AND Cutout = 1 THEN 1026
WHEN PrepType = 'L' AND Cutout = 1 THEN 1028 END
)
from HardwarePrepCodes

有什么想法吗?

编辑:尝试过"结束为[列名称]",这只会在AS附近抛出语法错误

出现问题是因为两个大小写语句都括在括号中。包含在其中的所有内容(两个 case 语句(都将作为单个列返回。

只需删除它们即可解决问题。

insert into usmas_Doors_HardwarePrepCodes(HWTypeMask, PrepTypeMask)  
select   
CASE HWType  
WHEN NULL THEN 0  
WHEN 'BT' THEN 1  
WHEN 'CL' THEN 2  
WHEN 'DB' THEN 3  
WHEN 'ED' THEN 4  
WHEN 'FB' THEN 5  
WHEN 'HG' THEN 6  
WHEN 'LK' THEN 7  
WHEN 'SK' THEN 8  
WHEN 'VW' THEN 9 END,
CASE 
WHEN PrepType IS NULL AND Cutout = 0 THEN 0
WHEN PrepType = 'A' AND Cutout = 0 THEN 1
WHEN PrepType = 'H' AND Cutout = 0 THEN 2
WHEN PrepType = 'L' AND Cutout = 0 THEN 4
WHEN PrepType IS NULL AND Cutout = 1 THEN 1024
WHEN PrepType = 'A' AND Cutout = 1 THEN 1025
WHEN PrepType = 'H' AND Cutout = 1 THEN 1026
WHEN PrepType = 'L' AND Cutout = 1 THEN 1028 END
from HardwarePrepCodes

最新更新