【发布时间】:2021-04-16 09:00:33
【问题描述】:
我有两个字符串:
'one two three'
和
'two one three'
虽然如果我直接比较它们,它们是不一样的,但它们分别包含的值是相同的,这对我来说很重要。所以我对比较的回答是字符串是相等的。 我正在寻找更直接的方法来比较它们,而无需创建函数来拆分和比较每个单独的值。有没有这样的解决方案?
我在stackoverflow中找到了这个线程:How to compare if two strings contain the same words in T-SQL for SQL Server 2008?
这对我不起作用,因为我想在进行其他比较的 cte 中进行此比较。
【问题讨论】:
-
根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。
-
您需要使用字符串拆分器拆分字符串,然后确保该值存在于另一个字符串中(也已拆分)。老实说,T-SQL 远非最好的语言选择。
-
I want to make this comparison on the go in a cte在这种情况下,我建议创建一个封装拆分和比较的用户定义函数。或者创建一个拆分、排序和重新加入的转换函数,然后为每个字符串调用一次并比较两个转换的结果 -> 请参阅您自己发布的链接中的dbo.StringSorter。这将属于我对直截了当的定义,或者仍然是最不麻烦的方式。 -
如果另一个字符串是
two three four或one two three four你想要什么结果 -
@Charlieface 这将是错误的。
标签: sql sql-server string string-comparison