繁体   English   中英

比较SQL中的多列

[英]Comparing multiple columns in SQL

假设我有2栏:

  • 专栏1:“ Silverado”
  • 第2栏:“ 1500 Vortec Max Crew Cab”

我想将记录匹配为“ 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM