sql语句中in的用法

sql语句中in的用法,第1张

你这样构造in的范围不对。你这样是把in后面处理成一个字符串了。而in后面跟的应该是一个范围。

你可以自己写一个返回数据集的函数来将aaddid值处理成in的范围,

类似于:

假设函数:

ft01(nvarchar(1000))

returns

table

tb

(val

int)。

那么,

这样更新里面子查询的in条件:

where

id

in

(select

val

from

ft01(aaddid))。

另外,

此解决方法只是从in条件上来说。

如果子查询只有1条记录,in和=是没有区别,如果子查询有多条记录,用=会出错的,所以in是无论只查询有多少条记录都可以使用,而=只有当子查询只有1条记录的时候才能使用。

in和exists理解上其实是差不多,但对数据库而言,in的执行顺序是先执行只查询条件,然后把记录和外查询核对,找符合条件的。

而exists是先执行外查询,再执行子查询,找到外查询记录后和只查询对比符合条件的,如果外查询和子查询的条目数差异很大,那么效率相差很明显的。

IN指的是某字段的值在某个集合当中。也就是该字段的取值范围。

如:Select from name where name In ('a','s','d')

ON主要实在表之间进行连接时指明连接条件的,有内连接,外连接等如:

SELECT FROM apps INNER JOIN

altapp ON appsapp_name = altappsource_name

1in 后面是记录集,如:

select    from  table  where   uname  in(select  uname  from  user);

2in 后面是字符串,如:

select    from  table  where   uname  in('aaa',bbb','ccc','ddd','eee',ffff'');

注意:这里一定要将字符串用单引号'' 标注起来;

3in 后面是数组,用如下方法,请参考:

//$pieces是含数据的数组

for($i=0;$i<count($pieces);$i++){

$uname=$uname"'"$pieces[$i]"',";

}

$the_uname ="uname in("$uname"'')";

select    from  table  where    "$the_uname" ;

备注:这种方法的原理其实很简单,二就是把数组编程上面“第2种情况”的形式。

AS不是用在WHERE中的,AS一般用在SELECT语句里或者建新表的时候。AS的作用就是命名,可以给查询所得的列命名或者给新建的表指定复制来源。如:SELECT COUNT() AS Summary,把COUNT()所得的结果列命名为Summary。

IN,一配多的条件查询语句,只要被查询的数值满足IN集合中的任意一项,就会返回真。例:SELECT FROM Students WHERE Class IN ('C++','Java','Python'),只要Class的值等于'C++'、'Java'或'Python'中的任意一项或多项,查询结果就为真。

以上就是关于sql语句中in的用法全部的内容,包括:sql语句中in的用法、sql server中的关键字in和on有什么区别、mysql 中 in的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9773729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存