查询语句select *from A where 字段1=‘60‘ 这样能查处A表字段1等于60的信息,
但是我的A表有字段1到字段10 10个列 如果我要查询所有字段的数据等于60的怎么查询呢?
难道要写成 select *from A where 字段1=‘60‘ or 字段2=‘60‘ or 字段3=‘60‘ or 字段4=‘60‘ or 字段5=‘60‘ or 字段6=‘60‘ 这样吗?
有没有一个好的方法能帮我把A表等于60的内容都查询出来呢?
但是我的A表有字段1到字段10 10个列 如果我要查询所有字段的数据等于60的怎么查询呢?
难道要写成 select *from A where 字段1=‘60‘ or 字段2=‘60‘ or 字段3=‘60‘ or 字段4=‘60‘ or 字段5=‘60‘ or 字段6=‘60‘ 这样吗?
有没有一个好的方法能帮我把A表等于60的内容都查询出来呢?
解决方案 »
- 一个自定义类 访问该类对象的属性 莫名其妙的出错,而且构造函数不起作用。请高手指教
- 散分!最近终于有些空余时间了,准备把以前还没结的贴都结了。
- 取字符串中最大的数字,以下有问吗?
- cgi 程序中有时会报gateway error(502) 是什么问题?急
- 建议大家如果回答的差不多就结贴吧,我就差30分就升级了,赞同的up一下
- 打包问题??
- Delphi如何操作XML节点的添加修改删除并显示到程序做为菜单使用
- 非常急"SQL6.5 数据库中不小心删除了一个表的数据,没有备份"
- 有谁知道问题出在那里?
- 原来的Borland为什么改名成Inprise
- 关系 TIdTCPServer 的中 Socket.Readstring() 的长度问题;
- delphi调用dll问题。
------------------------------
就得这么写, 没捷径.
查询字段是数值型, 而且加索引后速度很快. 只是拼sql串时麻烦点儿
----------
应该是and而不是or吧?毕竟每个字段的名称还是要敲上去的,怎么写也不见得省事。
CREATE TABLE [dbo].[Items] (
[Id] [int] IDENTITY (1, 1) NOT NULL ,
[Item1] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Item2] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Item3] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
DECLARE @ix int, @pos int, @str varchar(1000), @list varchar(1000),@SQL varchar(4000)
Set @list='1,2,3'--这里你可以定义到10以此类推
SET @pos = 1
SET @ix = 1
SET @SQL='Select * from Items where '
WHILE @ix > 0
BEGIN
SET @ix = charindex(',', @list, @pos)
IF @ix > 0
SET @str = substring(@list, @pos, @ix - @pos)
ELSE
SET @str = substring(@list, @pos, len(@list))
SET @str = ltrim(rtrim(@str))
SET @SQL = @SQL +' Item'+ @str+'=''60'' and '
SET @pos = @ix + 1
END
SET @SQL=@SQL+'1=1'
--SELECT @SQL
exec(@SQL)
这样 容易理解