查询语句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的内容都查询出来呢?
解决方案 »
- 找个delphi高手帮忙做一个软件,有酬劳。最好是桂林的。详情请加532961816
- fastreport怎么安装呀,4.5的,求教>>>>!!!!!
- 如何打印LilstView中数据
- 关于sql语句
- 寻找delphi的对串口读写的源代码?
- 请问DBGRID中能否禁用方向键?
- 将sql数据库导出为Excel文件问题!
- 关于delphi的tree view控件的 问题?
- 将很长的字符串(含中文等各种字符)加密存到ACCESS数据库字段,还要对此字段进行模糊查询,还要解密显示,近10W条数据,请问如何实现???谢谢!!!
- Picture.LoadFromFile和Picture.Savetofile时怎样用进度显示??
- 关系 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)
这样 容易理解