【问题标题】:How can I evaluate the size for when it returns the value whatever I want?当它返回我想要的值时,我如何评估大小?
【发布时间】:2022-01-07 02:12:35
【问题描述】:

我有这个查询,我在其中使用 NVL 函数检查一个字段是否为空,它分别返回另一个,依此类推,但我想确保无论它返回的数据如何,它都不大于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';

【问题讨论】:

  • 您在END 之后多了一个)。如果您使用适当的缩进格式化代码,这样您就可以轻松查看它,这会有所帮助。

标签: sql oracle oracle-sqldeveloper


【解决方案1】:

您解释它的方式应该是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';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2012-08-22
    • 2021-10-11
    • 1970-01-01
    相关资源
    最近更新 更多