建立一个视图从原来表新增一个字段,原表有字段a,如果字段长度长度大于32截取32位后面加... 否则保持原来的数据.

解决方案 »

  1.   

    select case when length(f)>32 then substr(f,1,32)||'...' else f end as f
    from(
    select '1234567890123456789012345678901234567890' as f from dual
    union
    select '1234' from dual)
      

  2.   

     create view v_view as
     select substr('最大缴费年度最大缴费年度最大缴费年度最大缴费年度最大缴费年度最大缴费年度' ,0,33)||'...' as b from dual
      

  3.   

    select a, substr(a,0,32)||'...' as b from table
      

  4.   

    按楼主的需求用scott的dept表做了个例子:
    SQL> select * from dept;    DEPTNO DNAME          LOC
    ---------- -------------- -------------
            60 测             test
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     WUHANSQL> select dept.*, case when length(dept.loc) > 5 then substr(dept.loc, 1, 5)||'..' else substr(dep
    t.loc, 1, 5) end as loc1 from dept;    DEPTNO DNAME          LOC           LOC1
    ---------- -------------- ------------- ------------
            60 测             test          test
            10 ACCOUNTING     NEW YORK      NEW Y..
            20 RESEARCH       DALLAS        DALLA..
            30 SALES          CHICAGO       CHICA..
            40 OPERATIONS     WUHAN         WUHANSQL> create or replace view v1 as select dept.*, case when length(dept.loc) > 5 then substr(dept.loc
    , 1, 5)||'..' else substr(dept.loc, 1, 5) end as loc1 from dept;View created.SQL> select * from v1;    DEPTNO DNAME          LOC           LOC1
    ---------- -------------- ------------- ------------
            60 测             test          test
            10 ACCOUNTING     NEW YORK      NEW Y..
            20 RESEARCH       DALLAS        DALLA..
            30 SALES          CHICAGO       CHICA..
            40 OPERATIONS     WUHAN         WUHANSQL> 
      

  5.   

    这个需求只是为了避免过多文字显示,你不应该用字符个数来判断,比如1和我的宽度是不一样的,而是应该放到客户端去格式化,比如css有这个效果,最多显示50px而不是多少个字符。<div style="text-overflow:ellipsis;overflow:hidden;width:50px">123456789</div>
      

  6.   

    create or replace view vgen_webpage as
    select
        decode(t.fpagetype,
            '1',
            '静态',
            '2',
            '动态'
           )FpagetypeText,
        decode(t.FStatus,                                
                      '*',
                      '注销',                  
                      '0',
                      '有效'                 
                     ) FStatusText,t.*,t.ftargetpagefname as f,
                     case when length(f) > 32 then substr
    (f, 1, 32)||'..' else substr(f, 1, 32) end as ftargetpagesname
     from tgen_webpage t系统说我没有定义F
      

  7.   

    create or replace view vgen_webpage as
    select
        decode(t.fpagetype,
            '1',
            '静态',
            '2',
            '动态'
          )FpagetypeText,
        decode(t.FStatus,                               
                      '*',
                      '注销',                 
                      '0',
                      '有效'               
                    ) FStatusText,t.*,t.ftargetpagefname as f,
                    case when length(t.ftargetpagefname) > 32 then substr
    (t.ftargetpagefname, 1, 32)||'..' else substr(t.ftargetpagefname, 1, 32) end as ftargetpagesname
    from tgen_webpage t