bh为varchar类型,存储A-Z字符,现在想查询在串中“AA,AC,DE,FA,KO,PQ”出现的每个词的行:select * from table1 where ','+bh+',' like ',AA,AC,DE,FA,KO,PQ,'
结果返回总是空,那里出错了?
结果返回总是空,那里出错了?
解决方案 »
- 如何用存储过程分页数据表中的内容?
- 奇怪的CHARINDEX
- 时间段问题!
- vb.net用SqlDataAdapter的fill方法读取sql数据速度的问题
- SQL Error: 18456, SQLState: S0001
- Sql Server 复制时 对已发布的表如何进行truncate?
- SQlSERVER 2000中触发器的简单问题,帮帮小弟吧
- 如何知道一个数据库文件里面的字段名?
- 用SQL语句分离一个表里的记录的问题,高手帮忙指点一下!急!!
- 请各位大虾帮帮忙啊!!如何批量将一个库里的所有表里的char改成nchar类型
- SQLServer中with问题
- windows xp professional不支持sql server2000Enterprise Edition服务器组件怎么办
select * from table1 where bh like '%AA,AC,DE,FA,KO,PQ%'
不就完了么?
(ID int identity(1,1), bh char)declare @a char
set @a= 'A'
while @a <> 'Z'
begin
insert #table values(@a)
set @a = char(ascii(@a)+1)
endcreate procedure #getNumbers(@str varchar(256))
AS
declare @s varchar(256)
set @s = replace(@str, ',', '') declare @n int
set @n= 1 declare @index int
set @index = 0
while @n < len(@s)
begin
select @index = ID from #table
where bh = substring(@s, @n, 1)
print @index
set @n = @n +1
end
-----------------------------------------------exec #getNumbers 'AA,AC,DE,FA,KO,PQ'drop table #table
其字段BH是设备编号,用字母编号,比如:
AA 21电视 长红...
AB 29电视 海尔...
....
BCA 10KVA电机 ...需求:查询时由用户指定设备编号筛选设备,比如用户指定了:“AA,AC,DE,FA,KO,PQ”,要找这6个设备。
■回ruanchao :
我的有什么问题?你的我试了不行。■回Generics:
你这样不行,因为如果用户指定“AAC,ABC”,你会把AA、AB、等也找出来。
select * from table1 where charindex(','+bh+',', ',AA,AC,DE,FA,KO,PQ,')>0而 where bh like '%,AA,AC,DE,FA,KO,PQ,% ' 要求bh中必须同时出现 “,AA,AC,DE,FA,KO,PQ, ”,所以总是返回空。