请问SQL中的WHEN和CASE??

tourstar 2010-11-19 10:17:14
我在做行专列的时候,发现其实行专列是离不开WHEN和CASE的,但是自己对SQL中的WHEN和CASE却是一点儿不了解,百度过了,也谷歌过了,就是不明白。请问哪儿位高手能给小弟指点迷津???谢谢
...全文
167 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyerwing 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 q107770540 的回复:]
当 if ..else 来理解
[/Quote]
switch case基本一样不好书了
ycproc 2010-11-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 rock870210 的回复:]

Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not f……
[/Quote]

转化成 程序的理解方式
Rock870210 2010-11-19
  • 打赏
  • 举报
回复
Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
好比:
if(ProductLine='R')
Category = 'Road';
else if(ProductLine='M')
Category = 'Mountain';
else if(ProductLine='T')
Category = 'Touring';
....
else
Category = 'Not for sale';
zhang_13245768 2010-11-19
  • 打赏
  • 举报
回复
比如数据表a中字段
垛号 序号 数量
1 1 1.1
1 2 1.2
1 3 1.3
2 1 2.1
2 2 2.2
2 3 2.3
...........
数据要这样显示
垛号 序号1 序号2 序号3 垛号总重量


SELECT 垛号
max(CASE WHEN 序号=1 THEN 数量 ELSE 0 END) AS dy,
max(CASE WHEN 序号=2 THEN 数量 ELSE 0 END) AS de,
max(CASE WHEN 序号=3 THEN 数量 ELSE 0 END) AS dsa,
SUM(数量) AS 'sweight'
FROM wl_packinglist_d


这样有没有明白点。。。
addaye 2010-11-19
  • 打赏
  • 举报
回复
case when col1 = '0' then 'Man'
when col2 = 1 then 'women'
end
symbol_bc 2010-11-19
  • 打赏
  • 举报
回复
对每一行都做if else if else的判断,形成一个或多个新列
边城的刀声 2010-11-19
  • 打赏
  • 举报
回复
把case 理解成C#中的swicth
把when理解成C#中的case
也就是swicth fld1 case 1 : case 2:
q107770540 2010-11-19
  • 打赏
  • 举报
回复
当 if ..else 来理解

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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