当前位置:首页 » 编程语言 » sqlin逗号

sqlin逗号

发布时间: 2022-10-02 18:25:35

❶ in在sql中是什么意思

select * from table where id in (1,3,5)
查询表里 id 是1 或者3 或者5 的记录
select * from table where name in ('小明','小红','小丽')
查询表里 name 等于 小明 或者小红 或者 小丽的记录
还有not in

❷ sql in用法

看你的C的类型,如果是int就是:in(1,2,3,4,5);如果是string就是in('ab','ac','bb','bc')这样的

❸ [SQL语句]关于IN的一个问题

直接写数组名当然不行,你那个数组明显是程序中定义的,不能在sql中使用。
sql中是不能使用数组的。只有像oracle的pl/sql一类sql扩展程序中能定义数组,但也不是你那种写法。

如果数组是固定值,AA是数字型,这样写就可以了:
SELECT * FROM TABLE WHERE AA IN (1,45,375,48,98,46)
AA是字符型就加单引号:
SELECT * FROM TABLE WHERE AA IN ('1','45','375','48','98','46')

如果数组是变量,就只能构造查询字符串:
"SELECT * FROM TABLE WHERE AA IN ("&Ary(0)&","&Ary(1)&","&Ary(2)&","&Ary(3)&","&Ary(4)&","&Ary(5)&")"
同样,AA是字符型就在构造时加单引号。
-----------------------------------------------------------
数组元素值是未知的?不太明白你的意思。
如果是未知的就没法查询,必需有确定值才能用sql来查询。
如果是变量,按上面数组变量的方式来写不就行了吗?当然首先要给变量赋值才行。
-----------------------------------------------------------
呵呵,是这样啊,这个也不难啊,用UBound函数取数组最大下标,构造sql查询串时循环最大下标次不就行了么?类似下面这样的写法:
sql = "SELECT * FROM TABLE WHERE AA IN (" '初始化查询字符串
For i = 0 to UBound(Ary) '从0循环到数组最大下标
sql = sql & Ary(i) & "," '将数组中每个值加在查询字符串后面
Next
sql = Left(sql,Len(sql)-1) & ")" '将最后一个逗号换为反括号

(如果用java就用Ary.ubound方法,同样的效果。)

❹ SQL中逗号分隔的查询结果转换成单个字符串放到in语句里

select student from xxhd a, school b where patindex('%' || a.school || '%',b.school)>0

❺ 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是先执行外查询,再执行子查询,找到外查询记录后和只查询对比符合条件的,如果外查询和子查询的条目数差异很大,那么效率相差很明显的。

❻ sql语句中in的用法

IN 操作符允许我们在 WHERE 子句中规定多个值。

SQL IN 语法:

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,...)

(6)sqlin逗号扩展阅读:

1、IN 与 = ANY 等价,均表示,变量在(子查询)列表之中,即 a IN (table B) 表示 a = ANY B.b

2、NOT IN 与 <> ALL 等价,而不等于<> ANY,前两者均表示,变量不在(子查询)列表之中,即 a NOT IN (table B) 表示 a <> ALL B.b。而如果a <> ANY B.b,则只要任意一个b<>a就true了。

3、IN 与 EXISTS 的性能区别主要来自,IN 会编列子查询的每行记录,然后再返回,而EXISTS 则只要遇到第一个满足条件的记录就马上返回。

❼ SQL语句中in是否只能作用于一个字段而不能作用于多个字段

where (a,b) in ( (1,2,3),('a','b','c') )
2个括号

❽ C#代码处理SQL语句中in操作

//将list转化为形如“1,2,3,4”这样的字符串
public static string ConvertToStr(IList<string> list)
{
try
{
var sb = new StringBuilder();
foreach (var t in list)
{
sb.Append("'");
sb.Append(t);
sb.Append("'");
sb.Append(",");
}
if (sb.Length > 0)
sb.Remove(sb.Length - 1, 1);
return sb.ToString();
}
catch (Exception)
{
return "";
}
}
查询的时候:
var inStr=ConvertToStr(list);
var select=string.Format("select * from table where id in ({0})",inStr)

❾ sql中 in的用法

上面的答案好像和楼主的有点出入哦,感觉怪怪的,更新过??
select
*
from
proct
where
cid
in
(select
cid
from
category
where
pid
=10
);
解决楼主的问题,直接这样就够了也很好理解
就是先在category表里面得到所有小类的cid,然后和proct表连接,输出产品名
不过这里用in是方便理解的,性能上好不好还真不好说

❿ “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条件上来说。

热点内容
编程培训学费 发布:2025-07-13 04:32:18 浏览:217
java验证正则表达式 发布:2025-07-13 04:16:37 浏览:366
sqlserver2008安全 发布:2025-07-13 04:15:19 浏览:469
mysql数据库信息 发布:2025-07-13 04:15:12 浏览:927
水密码为什么是塑料 发布:2025-07-13 04:06:40 浏览:818
电子印章加密 发布:2025-07-13 04:06:05 浏览:268
18款奥迪a4进取型有哪些配置 发布:2025-07-13 03:56:51 浏览:90
所以医院的密码是多少 发布:2025-07-13 03:52:35 浏览:719
怎么解决配置文件 发布:2025-07-13 03:51:54 浏览:86
新闻数据库设计 发布:2025-07-13 03:32:46 浏览:974