我想知道,如果它可以对两个组合列搜索。例如,在我的应用程序中,我有一个“全名”输入字段,但在SQL数据库中,我有列名,姓。T-SQL搜索的“组合拳”列名
是否有可能建立一个查询做这样名+姓=%全名%的搜索?
我想知道,如果它可以对两个组合列搜索。例如,在我的应用程序中,我有一个“全名”输入字段,但在SQL数据库中,我有列名,姓。T-SQL搜索的“组合拳”列名
是否有可能建立一个查询做这样名+姓=%全名%的搜索?
你可以这样做:
select *
from Production.Product
where (Name + ' ' + ProductNumber) like 'Bearing Ball BA-8327'
但是,如果你想利用索引的优势,你先更好的分流您的输入参数,然后使用直接场比较。
如果磁盘空间不是问题,你可以用全名添加一个“老大难”计算列这样就可以保持两个特定列的细节,同时实现索引全称列是自动更新的可能性时,无论是名字或姓氏的变化。
的限制条件是需要以及在稍慢的插入额外的空间。如果这两种情况值得关注,则可以使用计算列而不使用持久性来获得透明的全名列和更清晰的查询。
扩大从以前的答案的建议,试试这个。
SELECT * FROM People
WHERE firstname = substring(@fullname, 1, charindex(' ', @fullname) - 1)
AND surname = substring(@fullname, charindex(' ', @fullname) + 1, len(@fullname))
希望这会有所帮助。
很好,谢谢..会做! – Kelish 2011-05-22 20:56:58