求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
[解决办法]
select A.*,B.* into #temp from A,Bdeclare @sql varchar(1000)set @sql='select ID,Discription from #temp where '+第一个字段+' like ''%'+第一个条件值+'%''' or 其它的条件exec (@sql)delete table #temp
[解决办法]
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='输入的数据'
[解决办法]
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='输入的数据'