我有两个表elig(mID,startDate,endDate)和endDate(mID,serviceDate)。我必须检查serviceDate是否介于startDate和endDate之间,并将其插入到新的表hasClaim(mID、startDate、endDate、Flag)中。如果条件满足,则将标志设置为'Y‘,否则设置为'N’。我所做的是:
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'?我在使用甲骨文。
发布于 2015-06-17 12:42:14
尝试:
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中相同)。
https://stackoverflow.com/questions/30891334
复制相似问题