一道华为关于SQL的面试题

来源:百度知道 编辑:UC知道 时间:2024/05/30 18:38:53
4、SQL问答题
SELECT * FROM TABLE

SELECT * FROM TABLE
WHERE NAME LIKE '%%' AND ADDR LIKE '%%'
AND (1_ADDR LIKE '%%' OR 2_ADDR LIKE '%%'
OR 3_ADDR LIKE '%%' OR 4_ADDR LIKE '%%' )
的检索结果为何不同?
高手指点下

主要区别在于对数据类型值的处理上,select * from table会检索包括 NULL的所有值,
而后面语句 中 LIKE '%%'所匹配的一般只有任意字符串,不会对NULL,数字类型等进行匹配

like对null不处理

应该是考虑字段为NULL与空字符串''的问题吧

条件不同收索出的结果当然不同了 如果TABLE中的字段数超过第2句语言字段数就回有差别