首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询主键

查询主键
EN

Stack Overflow用户
提问于 2016-05-20 07:34:50
回答 2查看 36关注 0票数 0

请给出下面的结果,使用primary key (reg_num)的七列

代码语言:javascript
复制
reg_num day Morning Midday  Lunch   Evening Total_Period
0983776412  3   Yes Yes No  Yes 3
0985674389  3   No  Yes No  No  1
0983464736  4   Yes No  Yes No  2
0983466827  11  No  No  No  No  0
0983481234  15  Yes Yes Yes Yes 4

每一行显示“是”和“否”的组合,每一个reg_num只显示一天。您将看到最后一列"Total_Period“是每一行中所有'yes‘的计数。

你知道我如何计算"Total_Period“的值吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-20 07:45:00

最简单的方法是:

代码语言:javascript
复制
select decode(Morning, 'Yes', 1, 0)  + 
       decode(Midday, 'Yes', 1, 0)   + 
       decode(Lunch, 'Yes', 1, 0)    + 
       decode(Evening , 'Yes', 1, 0) 
from your_table
票数 0
EN

Stack Overflow用户

发布于 2016-05-20 09:08:17

如果您的DB是11G及以上,您也可以尝试ORACLE常规exp。希望能帮上忙。

代码语言:javascript
复制
SELECT a.reg_no,
  a.dy,
  a.morning,
  a.middday,
  a.lunch,
  a.evening,
  REGEXP_COUNT(a.morning
  ||','
  ||a.middday
  ||','
  ||a.lunch
  ||','
  ||a.evening,'Yes') Total_Period
FROM
  (SELECT 0983776412 reg_no,
    3 dy,
    'Yes' AS morning,
    'Yes' AS middday,
    'No' lunch ,
    'Yes' evening,
    NULL AS Total_Period
  FROM dual
  )A;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37340675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档