sql="select * from 数据表 where 变量 in(字段名)"

各位高手,
字段名里是类别(字符型),
如第一条记录是1,2,3,4
第二条记录是2,3
第三条记录是1
第四条记录是1,3

我想用把它分类显示出来,如果 变量是"1",那就显示字段名有"1"的第1条、第3条和第4条记录

可是我用sql="select * from 数据表 where 变量 in(字段名)"


a1="1"
sql="select * from 数据表 where '"&a1&"' in(字段名)"

只显示第三条记录!

方法1
这个需要些存储过程来实现
大致的思路是这样的
1 遍历表的列名
2 将数据存入零时表1中
3 按照查出来的列名循环从零时表中查询这列中是不是有你要的那个数据,有的话,这条数据保留
4 查出的数据存入零时表2中,并且从零时表1中删除
5 零时表2中的内容就是你所要的所有数据
每一步关键点说明
1 遍历的话给一个小例子
select name from syscolumns where id = object_id(’表名’)
2 略。
3 需要开游标(这个网上很多)
ps:如果字段比较少的话,你可以不用写循环,直接罗列就可以了
4 就是3的insert操作变成delete
5 得到结果

方法2
据例子说明
如第一条记录是1,2,3,4
第二条记录是2,3
第三条记录是1
第四条记录是1,3
给每条记录上一个识别字
建立一个零时表2个字段 sysid columvalues
将每列的值和这列的识别字分别插入
内容如
r1 1
r1 2
r1 3
r1 4
r2 2
r2 3
r3 1
r4 1
r4 3
然后查询这个表获得内容columvalues是1的行识别字(distict一下)
然后。。应该很清楚了八:)
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-03-16
用charindex函数:
a1="1"
sql="select * from 数据表 where '"&a1&"' in(字段名)"

a1="1"
select * from 数据表 where
字段名 In
(
select 字段名 From 数据表 where charindex(a1,字段名)>0
)

In语句的用法楼主需要熟悉一下,否则你不能熟练正确地运用In语句本回答被提问者采纳
第2个回答  2009-02-06
sql="select * from 数据表 where 字段名 like '*"&a1&"*' and 字段名 not like '*[0-9]"&a1&"*' and 字段名 not like '*"&a1&"[0-9]*'"

试试
第3个回答  2009-02-06
Select* From 表名Where 字段名like '%变量名%'
第4个回答  2009-02-14
学习,永无止境!!

sql="select * from 数据表 where 变量 in(字段名)"
1 遍历的话给一个小例子 select name from syscolumns where id = object_id(’表名’)2 略。3 需要开游标(这个网上很多)ps:如果字段比较少的话,你可以不用写循环,直接罗列就可以了 4 就是3的insert操作变成delete 5 得到结果 方法2 据例子说明 如第一条记录是1,2,3,4 第二条记录是...

select* from表名where字段in(select字段from表名group by字段
left out join 左连接,简单来说,若果是左连接,则保留左表所有的行;即使在右表 (Orders) 中没有匹配的行。同理,如果是right join,则保留右表所有的行,即使在左表 (table_name1) 中没有匹配的行。多表外链接查询语句 use+数据库 select+查询列名 from+表1 left\/right (out) join +表...

如何让查询出来的select * from 表 字段 in('1','3','5')显示的内容跟...
a1="1"sql="select * from 数据表 where '"&a1&"' in(字段名)"成 a1="1"select * from 数据表 where 字段名 In (select 字段名 From 数据表 where charindex(a1,字段名)>0 )In语句的用法楼主需要熟悉一下,否则你不能熟练正确地运用In语句 ...

sql="select * from 数据表 where 字段名 in ('值1','值2','值3...
什么都不写,语法不会通过的,你可以在括弧里写一个默认值,如('0')

SQL数据库常用命令及语法举例
sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"sql="select * from 数据表 where 字段名 between 值1 and 值2"(2) 更新数据记录:sql="update 数据表 set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where...

sql查询中where后面可以使用变量吗
sql查询中where后面可以使用变量,使用方法为;1、select 字段名 from 数据库表 where 字段=条件值;如下图所示。2、查询数据库表中字段不为某个值时,利用不等于,select 字段名 from 表名 where 字段 <> 条件。3、查询数据库表字段范围在某个条件之外,利用大于符号筛选查询结果,select 字段名 from...

用sql语句查询选修了3门及以上课程的学生学号,姓名,选修的课程数_百度...
desc]"sql="select top 10 * from 数据表 where字段名=字段值 order by 字段名 [desc]"sql="select top 10 * from 数据表 order by 字段名 [desc]"sql="select * from 数据表 where字段名in ('值1','值2','值3')"sql="select * from 数据表 where字段名between 值1 and 值2"...

SELECT * from 表 where 字段 in 数组
最好是先将数组每个值循环出来连接成符合sql的字符串 如(1,2,3,4,5...)直接引用即可 sql = "SELECT FROM TABLE WHERE AA IN ("'初始化查询字符串 For i = 0 to UBound(Ary)'从0循环到数组最大下标 sql = sql & Ary(i)& ","'将数组中每个值加在查询字符串后面 Next sql = Left(...

sql="select * from 数据表 where 中的数据表能是变量吗?能是数据库...
1. 因为你这儿的sql语句是字符串,在java和c#等编程语言中,只有不进行预编译(比如用statement),就可以用变量(就是字符串);但如果你用预编译的方法,就不行(比如preparedstatement)。2. 既然是当作普通字符串处理的话,表名变量那儿自然可以是 多个表了;不过在where中最好有连接条件。

sql语句中有单引号怎么办
如果插入的数据中包含单引号,就需要处理,用户可以将单引号替换成两个单引号,在sql中连续两个单引号就表示一个单引号字符,例如:insert into yourTable(f1,f2) values(100,'ab''c')表示插入 新记录f2字段为ab'c 使用函数replace可以实现这个功能:replace(yourStr,"'","''")在.NET里面,就要...

相似回答