0

我想在值是时插入零或空格NULL

我尝试了较小的列长度并且它有效:

INSERT INTO ABCTABLE (COLUMN1) 
VALUES ('DECODE(MDSE_CD,NULL,''000'',LPAD(TO_NUMBER(MDSE_CD,''3'','' ''))');

但是如何执行第二个大约 400 列长度的查询:

INSERT INTO ABCTABLE (COLUMN1) 
VALUES ('DECODE(MDSE_CD,NULL,''see notes below'',LPAD(TO_NUMBER(MDSE_CD,''400'','' ''))');

注意:当列是如何插入 400 个零或空格NULL

4

2 回答 2

2
CREATE TABLE my_test( val VARCHAR2(500));

INSERT INTO my_test
SELECT TO_CHAR(NVL(TO_CHAR(val), rpad(NVL(val,'0'), 400, '0')))
FROM
     (WITH t(val) AS
     (SELECT '1' FROM dual
     UNION
     SELECT NULL FROM dual
     )
SELECT * FROM t
     );

SELECT * FROM my_test;
val
--
1
00000
于 2013-08-23T03:49:38.707 回答
1

因为DECODE我假设甲骨文...

要在 Oracle 中获得 400 个零:

LPAD('0', 400, '0')

第三个参数是填充什么;在这种情况下为零。

要在 Oracle 中获得 400 个空格:

LPAD(' ', 400)

由于字符串都是相同的字符,您也可以使用RPAD.

于 2013-08-22T18:12:17.130 回答