我被这个错误卡住了,无法继续。
对这个错误有什么想法吗?
CASE WHEN mm.[Moodle Courses Category] + '_' +ISNULL(RIGHT(ttg.TTGP_Group_Code, LEN(ttg.TTGP_Group_Code)-11),'V1') like '%/%' THEN
mm.[Moodle Courses Category] + '_' +ISNULL(RIGHT(ttg.TTGP_Group_Code, LEN(ttg.TTGP_Group_Code)-11),'V1')
ELSE
mm.[Moodle Courses Category] + '_' +ISNULL(RIGHT(ttg.TTGP_Group_Code, LEN(ttg.TTGP_Group_Code)-11),'V1') END AS GROUP_ID
错误:Msg 536, 16层,状态2,1线传递给RIGHT函数的长度参数无效
你有:
RIGHT(ttg.TTGP_Group_Code, LEN(ttg.TTGP_Group_Code)-11)
该错误表明对于字段"ttg"。TTGP_Group_Code"至少有一条记录的长度为ttg。TTGP_Group_Code小于11个字符。你不能取负数的右。因此,如果字段的长度是10,减去11,就得到-1。
所以你需要有一个条件来解决ttg的长度。TTGP_Group_Code小于11,例如:
CASE
WHEN LEN(ttg.TTGP_Group_Code) <= 11 AND mm.[Moodle Courses Category] + '_' + ISNULL(tg.TTGP_Group_Cod,'V1') like '%/%' THEN
THEN mm.[Moodle Courses Category] + '_' + ISNULL(tg.TTGP_Group_Cod,'V1')
WHEN mm.[Moodle Courses Category] + '_' +ISNULL(RIGHT(ttg.TTGP_Group_Code, LEN(ttg.TTGP_Group_Code)-11),'V1') like '%/%' THEN
mm.[Moodle Courses Category] + '_' +ISNULL(RIGHT(ttg.TTGP_Group_Code, LEN(ttg.TTGP_Group_Code)-11),'V1')
ELSE
mm.[Moodle Courses Category] + '_' +ISNULL(RIGHT(ttg.TTGP_Group_Code, LEN(ttg.TTGP_Group_Code)-11),'V1')
END AS GROUP_ID