太头痛了,一个sql语句不会写,大家帮帮忙数据表 table1
有两个字段 a int
          b char比如有数据如下
  a        b
-------------
  1        Z
  2        Z
 30        Z现在我需要一个语句查询出这个结果:
Z001
Z002
Z030
就是说int型的那个需要3位,不足的前面补0,然后连接起来concat只能Z1 Z2 Z30,各位大侠~~~~~~~~~~~~~~~help me

解决方案 »

  1.   

    drop table if exists test;
    create table test(
    a int,
    b char(1)
    );
    insert into test values(1,'Z');
    insert into test values(2,'Z');
    insert into test values(30,'Z');select concat(b,right(concat('000',a),3))
    from test
      

  2.   

    楼上省一个零也可select concat(b,right(concat('00',a),3))
    from test
      

  3.   

    what database?
    sql-server?
    mysql?
    db2?
    oracle?
      

  4.   


    create table lk4(a int,b char(1))engine=myisam;
    insert into lk4 values(1,'Z'),(2,'Z'),(30,'Z');
    select (case when length(a)+length(b) < 4 then concat(b,lpad(a,3,'000')) else concat(b,left(a,3)) end) str from lk4;query result(3 records)
    str 
    Z001 
    Z002 
    Z030 
      

  5.   

    晕,,,上面说的都没有一个可以的,,
    看来需要动用存储过程了,,这个看来使用select 的case when 不能解决问了