INSERT INTO NJPGSJMX ( NJPGSJMX_BGBH, NJPGSJMX_ZBLX, NJPGSJMX_ZBXH, NJPGSJMX_ZBMC, 
 NJPGSJMX_PGSJ, NJPGSJMX_PGJG) VALUES ( 'PGBG000006' , '2' , '1' , '差错指标' , '70'  
, (CASE WHEN  70 = 80  THEN '0'               WHEN  70 = 100  THEN '1'    
            WHEN  70 = 110  THEN '2'               ELSE 'X' END FROM DUAL ))INSERT INTO NJPGSJMX ( NJPGSJMX_BGBH, NJPGSJMX_ZBLX, NJPGSJMX_ZBXH, NJPGSJMX_ZBMC, 
 NJPGSJMX_PGSJ, NJPGSJMX_PGJG) 
select 'PGBG000006' , '2' , '1' , '差错指标' , '70'  
, case 列名 when 80 then '0' when 100 then '1' when 11 then '2' else 'x' end
from dual
列名换成你的字段名。

解决方案 »

  1.   

    select CASE WHEN 70 = 80 THEN '0' WHEN 70 = 100 THEN '1' 
     WHEN 70 = 110 THEN '2' ELSE 'X' END FROM DUAL在oracle可以这么搞.但是我没看懂你的意思.70=80 then 0
    70是个字段?
      

  2.   

    Insert Into NJPGSJMX

    NJPGSJMX_BGBH
    ,NJPGSJMX_ZBLX
    ,NJPGSJMX_ZBXH
    ,NJPGSJMX_ZBMC
    ,NJPGSJMX_PGSJ
    ,NJPGSJMX_PGJG

    Select 'PGBG000006'
    ,'2'
    ,'1'
    ,'差错指标'
    ,'70'  
    ,CASE WHEN  70 = 80  THEN '0' 
    WHEN  70 = 100  THEN '1'
    WHEN  70 = 110  THEN '2'
    ELSE 'X' END
    FROM DUAL
      

  3.   

    --sql中大致的语法:
    INSERT INTO NJPGSJMX ( NJPGSJMX_BGBH, NJPGSJMX_ZBLX, NJPGSJMX_ZBXH, NJPGSJMX_ZBMC, NJPGSJMX_PGSJ, NJPGSJMX_PGJG) 
    select 'PGBG000006' , '2' , '1' , '差错指标' , '70' , CASE WHEN 70 = 80 THEN '0' WHEN 70 = 100 THEN '1'  WHEN 70 = 110 THEN '2' ELSE 'X' END FROM 某个表
      

  4.   

    还有最后一个问题
    如果数据类型为
    NJTZCP_ZFE numeric(18,8)
    有没有办法让他
    insert into NJTZCP(NJTZCP_NJTZCP_ZFE )
      VALUES('')
    插入''时数据库就默认为'0.0'呢?
      

  5.   

    直接写0.0insert into NJTZCP(NJTZCP_NJTZCP_ZFE ) 
      VALUES(0.0) 
      

  6.   

    这是个程序的移植,不能动程序的,能不能在建表的时候
      NJTZCP_ZFE           numeric(18,8)        null default 0,default 0 能不能换成一个判断语句么,IF=‘’则=‘0’
      

  7.   


    往表里插数据,用insert into 表 values()内部是不能用case when 的,但是下面这种写法应该是没有问题的:
    INSERT INTO NJPGSJMX ( NJPGSJMX_BGBH, NJPGSJMX_ZBLX, NJPGSJMX_ZBXH, NJPGSJMX_ZBMC, 
     NJPGSJMX_PGSJ, NJPGSJMX_PGJG) 
    select 'PGBG000006' ,   '2' , '1' , '差错指标' , '70' ,(CASE WHEN  NJPGSJMX_PGJG = 80  THEN '0'               WHEN  NJPGSJMX_PGJG = 100  THEN '1'    
                WHEN  NJPGSJMX_PGJG = 110  THEN '2'               ELSE 'X' END)
    FROM DUAL