我有样本记录排名表
SNO NAME TYPE RANK1-RANK2 DATE
2 sd sdf ds Weekly 4 - 8 20-Sep-2011 19:23:02
3 asd asd Weekly 1 - 6 21-Sep-2011 19:23:02
4 sdsdsfsd Weekly 1 - 1000 22-Sep-2011 19:23:02
在上面的例子中有一个记录我有2011年9月20日我有排名1-8,从我用来选择rank1和rank2的形式,如果插入成功,rank1和rank2不应该在这个范围内,其他明智的不应该插入。因为我需要选择sql查询可以任何人回答这个选择sql查询..
SNO 2记录的测试用例
从表单中选择
rank1 - rank2 insert 1 - 3 true 2 - 6 false 5 - 7 false 10 - 100 true
答案 0 :(得分:0)
如果我理解正确的话; 当您从此查询中获得0以外的值时,可以插入数据。
select count(*) from table t
where
(t.rank1 not between 4 and 8)
and
(t.rank2 not between 4 and 8)
and
t.date = '2011-09-20'
答案 1 :(得分:0)
您可以使用此查询查看是否有阻止您插入的记录。如果它返回1,那么插入将被禁止。
SELECT COUNT (*) FROM table
WHERE rank1 NOT BETWEEN MIN(incomingRank1, incomingRank2) - 1
AND MAX(incomingRank1, incomingRank2) + 1
AND rank2 NOT BETWEEN MIN(incomingRank1, incomingRank2) - 1
AND MAX(incomingRank1, incomingRank2) + 1
AND date = incomingDate