今天我发现这个select语句在oracle中有效。
select * from table where col=(value)
并且平等对待
select * from table where col=value
有人可以解释一下吗?
答案 0 :(得分:4)
SELECT * FROM DUAL;
/* Result:
"DUMMY"
"X"
*/
SELECT COUNT(dummy) FROM DUAL WHERE dummy = 'X';
-- 1
SELECT COUNT(dummy) FROM DUAL WHERE dummy = ('X');
-- 1
SELECT COUNT(dummy) FROM DUAL WHERE dummy = (((('X'))));
-- 1
SELECT COUNT(dummy)
FROM DUAL
WHERE dummy = 'X'
OR dummy = ('X')
OR ( dummy = 'X' OR dummy = ('X'))
OR ((dummy = 'X' OR dummy = ('X')) AND (1 = 1 OR (1 = 1 OR (1 = 1))));
-- 1
(...)括号或括号用于明确表示优先顺序 通过对应首先评估的表达式的部分进行分组。 因此,为了在乘法之前强制加法,我们写(2 + 3)× 4 = 20,并且为了在求幂之前强制加法,我们写(3 + 5)2 = 64。
答案 1 :(得分:1)
不确定您要找的是什么解释。如果你的意思是为什么col = value和col =(value)是相同的,那么这不仅在oracle中完全有效,而且在大多数其他dbs sql查询中也是如此。当你需要类似的情况时,请考虑以下情况。
Select * from table1
where col = (Select max(col2) from table2)