当它返回我想要的值时,我如何评估大小



我有一个查询,在这个查询中,我用NVL函数检查一个字段是否为null,它是否返回另一个字段,依此类推,但我想确保无论它返回的数据是什么,它都不大于10,如果是,那么它会将字符串剪切到这个极限,这无关紧要。但我得到了一个";无效的参数"错误,我不知道该怎么做。。。

SELECT NVL(
CASE
WHEN LENGTH(NA.NAME_FORMAL) > 10
THEN SUBSTRB (NA.NAME_FORMAL,1,10) 
END
),
Length(BI.PAYERNAME)),
BI.EMPLID
FROM   BI_REQADR_VW BI
left JOIN FORMAL_NAMES NA
ON BI.EMPLID = NA.EMPLID
WHERE  BI.EMPLID = '00000PROOF';

您解释它的方式应该是NVLsubstr,而不是相反(因为它更简单((除了语法错误(。

SELECT SUBSTR (NVL (na.name_formal, bi.payername), 1, 10), 
bi.emplid
FROM bi_reqadr_vw bi LEFT JOIN formal_names na ON bi.emplid = na.emplid
WHERE bi.emplid = '00000PROOF';

最新更新