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 根本不受影响啊...我晕了 菜
解决方案 »
- 一个服务器上的两个数据库A和B中分别有两个相同的表C和D,字段和数据类型都相同,C表属于A,D表属于B,如何实现C表的数据添加,删除,修改时,D表的数据实现同步更新
- ssis工具(sqlserver2008数据导入至sqlsever2000)出现的错误码,请前辈指点!小弟先谢了!
- select * 与 select 1 有区别吗?单从取记录数的角度讲,用哪个更好些?
- 如何实现Enterprise Manager-打开表-返回所有行中每次取一页数据的功能?
- 存储过程的问题,怎样把字符串转成变量?
- 关于SQL2000的统计功能
- 需要大家求救的问题
- 查询的记录老是不随着参数变化的问题
- 找大力.还是昨天的那个问题.
- 表末添加一列,用来计算前面各列的总和,SQL语句如何写?
- 请教表内自耦合
- 请教一个简单问题,在线等,谢谢了。!!!
-- 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 行受影响)*/
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
SQL板块的几个N人也太强大了吧 回帖速度超快这个真快