1. sql中in和not in的问题
整条语句 执行的话 “select custcd from grade_model_info where custcd = '10000'” 它 只是作为 “select count(*) from customer_info” 的条件存在 只会返回结果 为false或者空 所以 查询 不受影响 !
2. oracle sql语法 in 的疑问
简单来讲这是一个书写不规范的SQL语句,容易让人产生歧义。对于多表的嵌套查询规范是每个表都要有别名,指定字段时更要指定是哪个表的字段,这样的代码才清晰易读。
复杂来讲就是人可能产生歧义,但机器不会。写这个语句的人就是利用了机器运行语句时的逻辑去写的代码,更多的是为了增加代码复杂度,妨碍他人阅读理解他的代码。或者就是这个人的编码习惯就是如此,具有某种编码强迫症。
3. sql中的in的问题
朋友,你可以在Request("id")值的前后加上”," 然后把 TagID 转成字符串前后也加上”,”,用like 进行匹配!
4. 关于sql查询in用法的问题
你检查一下这句的结果集是什么:select address from yunweiuser where name='***'
5. sql in()语句
你这样构造in的范围不对。你这样是把in后面处理成一个字符串了。而in后面跟的应该是一个范围。
你可以自己写一个返回数据集的函数来将aa.ddid值处理成in的范围,
类似于:
假设函数:
ft01(nvarchar(1000))
returns
table
tb
(val
int)。
那么,
这样更新里面子查询的in条件:
where
id
in
(select
val
from
ft01(aa.ddid))。
另外,
此解决方法只是从in条件上来说。
如果子查询只有1条记录,in和=是没有区别,如果子查询有多条记录,用=会出错的,所以in是无论只查询有多少条记录都可以使用,而=只有当子查询只有1条记录的时候才能使用。
in和exists理解上其实是差不多,但对数据库而言,in的执行顺序是先执行只查询条件,然后把记录和外查询核对,找符合条件的。
而exists是先执行外查询,再执行子查询,找到外查询记录后和只查询对比符合条件的,如果外查询和子查询的条目数差异很大,那么效率相差很明显的。