校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > UI专业知识 > 色彩
题目

A表字段a 类型int中有100条记录,值分别为1至100。如下语句SELECT a FROM A WHERE a BETWEEN 1 AND 50 OR (a IN (25,70,95) AND a BETWEEN 25 AND 75)  则如下哪个值在这个sql语句返回的结果集中?

A.30

B.51

C.75

D.95

解答

正确答案是 A

SELECT a FROM A WHERE a BETWEEN 1 AND 50 OR (a IN (25,70,95) AND a BETWEEN 25 AND 75)
1.  BETWEEN 1 AND 50   
    a的值在 1 到 50 区间,条件则成立
2.  a IN (25,70,95) AND a BETWEEN 25 AND 75
    a的值在 25 到 75 区间且a的值为25,70,95其中一个,条件则成立
    显然,在第一个条件不成立的情况下,这里第二个条件只有70满足条件。
所以,满足上述选择条件的结果集包括 1 到 50,和 70
C 4条回复 评论
海边的卡夫卡

这个问题很常见

发表于 2021-09-13 16:00:00
0 0
木木疋12

WHERE a BETWEEN 1 AND 50 OR (a IN (25,70,95) AND a BETWEEN 25 AND 75)   的意思是a的范围为(1-50)|((25,70,95)&(25-75)所以只要第一项(1-50)满足就好了

发表于 2018-10-11 14:52:34
0 0
流星飒沓

查询条件( WHERE )应该这样来解释 :
( a BETWEEN 1 AND 50 ) OR ( (a IN (25,70,95) AND a BETWEEN 25 AND 75) )//因为AND的优先级比OR的高
用集合表示为:
(1,50)OR({25,70,95}∩(25,75))

发表于 2018-10-11 14:47:34
0 0
左桂贤

优先级 AND 大于 OR

发表于 2018-10-11 14:47:15
0 0