传递给RIGHT函数的长度参数无效



我被这个错误卡住了,无法继续。

对这个错误有什么想法吗?

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

相关内容

最新更新