我遇到了这个错误而无法进展。
对此错误有任何想法吗?
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
错误:消息536,级别16,状态2,行1 传递给RIGHT函数的长度参数无效。
答案 0 :(得分:0)
你有:
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