日期:2014-05-18  浏览次数:20836 次

求1个sql语句
假如有以下4个表 
tableA 
ID Name Birthday
1 aa 19790907
2 bb 19790910
3 cc 19800505

tableB 
ID Discription 
1 11 
2 22 
3 33


我有一个搜索画面,需要根据输入的内容进行like查询。
画面上有ID,Name,BirthYear,BirthMonth,BirthDay,Sex这6个选项。
他们之间是or的关系。

我最后想要我搜索到的ID和Discription 
这样的搜索我应该怎么写?

------解决方案--------------------
大体上分两步,
第一步你先学会如何在sql中编写sql语句
比如:select * from tableA inner join tableB on a.id=b.id where name='aa' or discription like '%3'
第二步你要学会如何用Ado.Net来执行sql语句
------解决方案--------------------
select A.ID,B.Discription from tableA as A
inner join tableB as B 
on A.ID=B.ID
WHERE
A.ID LIKE '%@%' or
A.Name like'%@%' or
datepart(yyyy,Birthday) =@ or
datepart(MM,Birthday) =@ or
datepart(dd,Birthday) =@ or




------解决方案--------------------
SQL code
select A.*,B.* into #temp from A,B

declare @sql varchar(1000)
set @sql='select ID,Discription  from #temp where 
'+第一个字段+' like ''%'+第一个条件值+'%'''   or 其它的条件

exec (@sql)
delete table #temp

------解决方案--------------------
SQL code

Select a.ID,b.Discription From tableA a Left Outer Join tableB b On a.ID=b.ID 
Where ID='%输入的数据%' or Name='%输入的数据%' or BirthYear='%输入的数据%' or BirthMonth='%输入的数据%' or BirthDay='' 
Or Sex='输入的数据'

------解决方案--------------------
SQL code

Select a.ID,b.Discription From tableA a Left Outer Join tableB b On a.ID=b.ID 
Where ID like '%输入的数据%' or Name like '%输入的数据%' 
or convert(varchar(4),year(Birthday)) like '%输入的年%' 
or convert(varchar(4),month(Birthday)) like '%输入的月%' 
or convert(varchar(4),day(Birthday)) like '%输入的日%' 
Or Sex='输入的数据'