首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在insert-select块中使用if-else条件

在insert-select块中使用if-else条件
EN

Stack Overflow用户
提问于 2015-06-17 12:15:49
回答 1查看 577关注 0票数 0

我有两个表elig(mID,startDate,endDate)和endDate(mID,serviceDate)。我必须检查serviceDate是否介于startDate和endDate之间,并将其插入到新的表hasClaim(mID、startDate、endDate、Flag)中。如果条件满足,则将标志设置为'Y‘,否则设置为'N’。我所做的是:

代码语言:javascript
复制
INSERT INTO hasClaim (mID, startDate, endDate, has_claim)  
SELECT e.mID, e.startDate, e.endDate, 'Y' 
FROM elig e 
inner JOIN claim c 
ON e.mID=c.mID 
WHERE c.serviceDate BETWEEN e.startDate AND e.endDate

但这只返回serviceDate位于startDate和endDate之间且标志设置为'Y‘的值。如何检索其他值并将标志设置为'N'?我在使用甲骨文。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-17 12:42:14

尝试:

代码语言:javascript
复制
INSERT INTO hasClaim (mID, startDate, endDate, has_claim)  
SELECT e.mID, 
       e.startDate, 
       e.endDate, 
       CASE 
          WHEN c.serviceDate BETWEEN e.startDate AND e.endDate
          THEN 'Y'
          ELSE 'N'
       END AS has_claim
FROM elig e 
inner JOIN claim c 
ON e.mID=c.mID;

这使用搜查案语句(来自10g文档,但在11g中相同)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30891334

复制
相关文章

相似问题

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