sql 判断 when case 吗?

编程有钱人了 2009-04-25 09:47:45

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 根本不受影响啊...我晕了 菜
...全文
53 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ks_reny 2009-04-25
  • 打赏
  • 举报
回复
sql版牛人一大堆.
duanzhi1984 2009-04-25
  • 打赏
  • 举报
回复
呵呵,那是啊 !
编程有钱人了 2009-04-25
  • 打赏
  • 举报
回复
y晕死


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

这个真快
bqb 2009-04-25
  • 打赏
  • 举报
回复

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', 2

select 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
liangCK 2009-04-25
  • 打赏
  • 举报
回复
---------------------------------
-- 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 行受影响)

*/
liangCK 2009-04-25
  • 打赏
  • 举报
回复
CASE WHEN PID=0 THEN '超级' ELSE userName END AS USERNAME

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧