[英]Comparing multiple columns in SQL
假设我有2栏:
我想将记录匹配为“ Silverado 1500”的字符串
我将如何处理?
我正在运行SQL Server 2014
谢谢
您可以尝试这样的事情:
SELECT * FROM MyTable
WHERE Col1 + ' ' + Col2 LIKE '%Silverado 1500%'
并非完全符合您的要求,但这是我希望进行此类搜索的行为。 它将为您提供多个术语的匹配结果以及匹配的术语数。
DECLARE @SearchTerms TABLE(
Term VARCHAR(200)
)
DECLARE @Table TABLE (
Col1 VARCHAR(200),
Col2 VARCHAR(200)
)
INSERT INTO @Table SELECT 'Silverado','1500 Vortec Max Crew Cab'
INSERT INTO @Table SELECT 'Honda','Accord'
DECLARE @xml as xml,@str as varchar(100),@delimiter as varchar(10)
SET @str='Silverado 1500 Crew'
SET @delimiter =' '
SET @xml = cast(('<X>'+replace(@str,@delimiter ,'</X><X>')+'</X>') as xml)
INSERT INTO @SearchTerms
SELECT N.value('.', 'varchar(10)') as value FROM @xml.nodes('X') as T(N)
SELECT t.Col1,t.Col2,count(*) [Matching Terms]
FROM @Table t
INNER JOIN @SearchTerms st on t.Col1 like '%' + st.Term + '%' OR t.Col2 like '%' + st.Term + '%'
GROUP BY t.Col1,t.Col2
ORDER BY count(*) DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.