标题:关于SQL语言中where in语句的使用??
取消只看楼主
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
 问题点数:0 回复次数:5 
关于SQL语言中where in语句的使用??
大家好:

我有一个字符串mystr=(0010,0020,0030)等,字符串里面的元素可能会改变,但是字符串的名称mystr不变

用sQL语句查询编码包含在字符串mystr里面的行的信息,语句如下:

Adodc1.RecordSource = "select * from table where 编码 in ('0010','0020','0030')"

Adodc1.RecordSource = "select * from table where 编码 in ("+ mystr + ")"

第一条语句可以实现查询,而第二条语句未显示任何结果,in后面如果是一个字符串的话,应该是怎样的写法??

调用SQL的环境:VB
搜索更多相关主题的帖子: SQL 语句 语言 
2007-10-13 15:56
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
得分:0 
我定义的mystr为一字符串变量,mystr里面的字符也都强制转换成字符串了,这只是一种表述方式,说明我mystr字符串里面的内容
2007-10-13 16:21
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
得分:0 
Dim i As Long, s() As String
ReDim s(i To Val(Outbuffer(0))) As String
For i = 0 To (Val(Outbuffer(0)) - 1)
s(i) = Trim(str(Hex(Con(Outbuffer(1 + 3 * i), Outbuffer(2 + 3 * i)))))

Dim mystr As String
If Val(Outbuffer(0)) > 0 Then
mystr = Join(s, ",")

Adodc1.RecordSource = "select 编码,故障码 from DTC where 编码 in ('" + mystr + " ')"

这是我的程序,请帮忙检查一下
2007-10-13 16:31
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
得分:0 
按照版主的说法加了msgbox mystr,果真不是是'0010','0020','0030',没有单引号,那应该怎么加呢?
我mystr里面的字符串是通过数组元素join过来的

'" + mystr + " '这样的形式仍然没有结果显示??

[此贴子已经被作者于2007-10-13 16:39:32编辑过]

2007-10-13 16:33
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
得分:0 

查找的资料中:

当数组是int型时,
string strsql ="SELECT c_c_UpTime,c_c_Position,STitle FROM SeekItem where c_id in ("+str+")";

当数组是string型时
string strsql ="SELECT c_c_UpTime,c_c_Position,STitle FROM SeekItem where c_id in (' "+str+" ')";

两者的区别就是当是string型时,需要多一对单引号,我照第二种方式,不知为什么不能显示正确的结果?

2007-10-13 16:51
loria
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-9-8
得分:0 

感谢版主,终于可以了,非常非常的感谢,很是感受到这个论坛的温暖

2007-10-13 19:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-177303-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.080365 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved