id   username   pid
1    wang       0
2    li         0
3    xiao       1
4    zhao       2我想要的结果是
凡是pid=0 的  输出的  username='超级'否则就按照原来的 数值显示
--我想得到的结果
/*
username   pid
超级         0
超级         0
xiao        1
zhao        2
*/很不好意思我在sql语句方面 很菜的程序稍微比数据库好点
我的select   username,case pid when '0' then '超级' end from table这样的结果是username 根本不受影响啊...我晕了   菜

解决方案 »

  1.   

    CASE WHEN PID=0 THEN '超级' ELSE userName END AS USERNAME
      

  2.   

    ---------------------------------
    --  Author: liangCK 小梁
    ---------------------------------
     
    --> 生成测试数据: @T
    DECLARE @T TABLE (id INT,username VARCHAR(4),pid INT)
    INSERT INTO @T
    SELECT 1,'wang',0 UNION ALL
    SELECT 2,'li',0 UNION ALL
    SELECT 3,'xiao',1 UNION ALL
    SELECT 4,'zhao',2--SQL查询如下:SELECT id,CASE WHEN PID=0 THEN '超级' ELSE userName END AS USERNAME
    FROM @T/*
    id          USERNAME
    ----------- --------
    1           超级
    2           超级
    3           xiao
    4           zhao(4 行受影响)*/
      

  3.   


    create table tb(id int,   username varchar(20),   pid int)
    insert into tb 
    select 1,    'wang',       0
    union all select 2,    'li',         0
    union all select 3,    'xiao',       1
    union all select 4,    'zhao',       2select id,username=case when pid=0 then '超级' else username end,pid from tb
    /*
    id      username   pid
    ----------------------
    1 超级 0
    2 超级 0
    3 xiao 1
    4 zhao 2
    */drop table tb
      

  4.   

    y晕死
    SQL板块的几个N人也太强大了吧 回帖速度超快这个真快