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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中逗号分隔的查询结果转换成单个字符串放到in语句里相关的知识,希望对你有一定的参考价值。

查询的结果转换成单个字符串放到in语句里

现查询语句:select student from xxhd where school in (select school from school)
主要问题是select school from school查询出来的结果是第一中学,第二中学,第三中学...都在一行里,需要把第一中学,第二中学,第三中学转换为'第一中学','第二中学','第三中学',以便实现
select student from xxhd where school in ('第一中学','第二中学','第三中学')这样的查询结果,当然,不能写成固定值,只能把select school from school查询后的结果进行转换
谢谢大家!最好用SQL语句,不用函数。

参考技术A select student from xxhd a, school b where patindex('%' || a.school || '%',b.school)>0追问

大侠,显示有语法错误,是哪里问题!

追答

忘记问你了,你这是什么数据库,|| 是oracle字符串链接的符号。。。
sql server是+

追问

谢谢,语句可以执行了,就是查询不到数据

追答

要不用CHARINDEX()
select student from xxhd a, school b where CHARINDEX(a.school,b.school)>0

追问

第二条语句,也没有返回结果,空的

本回答被提问者采纳
参考技术B select student from xxhd where CHARINDEX(school,(select school from school))>0

以上是关于SQL中逗号分隔的查询结果转换成单个字符串放到in语句里的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQL Server 将逗号分隔的文本转换为多列结果

SQL IN 逗号分隔参数与内部查询

PL/SQL 查询 IN 逗号分隔字符串

使用 WHERE IN SQL 子句将字符串值从单个值拆分为多个值以获取数据

SQL FIND_IN_SET() 判断某一个数是否存在于数据表某个以逗号分隔开字段数据中

sql [sql]将逗号分隔的字符串转换为sql(或)查询