当前位置: 首页 > 知识库问答 >
问题:

NVL、SUBSTR和RPAD语法

连乐
2023-03-14

我试图通过选择以下值来创建一个固定宽度的文件:

SELECT distinct SubStr(RPad(InitCap(p.namelast),50,' '),1,50)
|| SubStr(RPad(InitCap(p.namefirst),50,' '),1,50)
|| SubStr(RPad(p.house ||' ' || p.street || ' '  ||p.streettype,50,' '),1,50)
||'                                                  ' 
||SubStr(RPad(InitCap(p.city),35,' '),1,35)
||NVL(SubStr(RPad(p.province,2,'0'),1,2),'  ')
||NVL(SubStr(RPad(p.postal,5,'0'),1,5),'     ')

上面的工作很好。然而,我还需要说明这样一个事实,即地址将在我上面的字段(p.house,p.street,p.streettype...)中解析或者在ADDRESS1和Address2中找到。但是,地址2包含城邦和zip,需要解析。

我可以通过使用NVL来实现这一点吗?我觉得如果我使用一个NVL并把我需要的值写出来,它就可以工作。但我不确定语法。

ADDRESS1和ADDRESS2中的数据分别如下所示:

123 boom drive|MONTGOMERY AL 45777

共有1个答案

尚河
2023-03-14

我很清楚您的要求,但如果这是关于一致地格式化所有这些列,一种方法是格式化列,而不是使用子集和填充。例如:

column Address1 format a20 ;
column Address2 format a20 ; 
column aliased-column format a20; 

这使您的select语句更清晰、更易维护。更有趣的是,您可以创建一个脚本,动态格式化表中的列。例如:

select 'column ' || table_name || ' format a20; ' from all_tables where lower(owner) = 'scott'; 
 类似资料:
  • 本文向大家介绍Oracle中的INSTR,NVL和SUBSTR函数的用法详解,包括了Oracle中的INSTR,NVL和SUBSTR函数的用法详解的使用技巧和注意事项,需要的朋友参考一下 Oracle中INSTR的用法: INSTR方法的格式为 INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 例如:INSTR('CORP

  • substr 方法 从起始索引位置提取字符串中指定数目的字符。 语法: stringObject.substr( start_index, length ); 参数说明: start_index - 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 substrment

  • 描述 (Description) 此方法用于返回字符串的必需子字符串。 它接受一个整数值,表示子字符串的起始值和字符串的长度,并返回所需的子字符串。 如果起始值为负,则substr()方法将其用作字符串末尾的字符索引。 语法 (Syntax) 下面给出了JavaScript的substr()方法的语法。 我们可以在CoffeeScript代码中使用相同的方法。 string.substr(star

  • 描述 (Description) 此函数返回EXPR的子字符串,从字符串中的OFFSET开始。 如果OFFSET为负数,则从字符串末尾开始那么多字符。 如果指定了LEN,则返回该字节数,或者返回所有字节,直到未指定为字符串结尾。 如果LEN为负数,则将多个字符留在字符串末尾。 如果指定了REPLACEMENT,则使用REPLACEMENT字符串替换子字符串。 如果指定超出字符串末尾的子字符串,则仅

  • 此方法从特定字符串获取子字符串。 语法 (Syntax) substr(string1,index,count) 参数 (Parameters) string1 - 源字符串。 index - 子字符串的起始索引位置。 count - 子字符串的字符数。 返回值 (Return Value) 返回子字符串。 例子 (Example) /* Main program */ a = "Hello

  • 描述 (Description) 此方法用于返回字符串的必需子字符串。 它接受一个整数值,表示子字符串的起始值和字符串的长度,并返回所需的子字符串。 如果起始值为负,则substr()方法将其用作字符串末尾的字符索引。 语法 (Syntax) 下面给出了JavaScript的substr()方法的语法。 我们可以在CoffeeScript代码中使用相同的方法。 string.substr(star