Sql 是否可以使用“不类似”%”条件联接两个表?

Sql 是否可以使用“不类似”%”条件联接两个表?,sql,tsql,Sql,Tsql,我需要一个查询,将一个表中的字符串列表与另一个表中的字符串列表进行比较 伪代码可能是: for each word in slang if not word.contains(animalName) { print animalName } next slang 它不一定要快,不是为了生产。我正在尝试调试一些东西,而查询的结果正是我需要处理的 谢谢。也许您可以将每个表的数据拉入.Net集合,然后使用LNIQ对它们进行比较。也许您可以将每个表的数据拉入.Net集合,然后使用LNIQ对它们

我需要一个查询,将一个表中的字符串列表与另一个表中的字符串列表进行比较

伪代码可能是:

for each word in slang
 if not word.contains(animalName) {
  print animalName
 }
next slang
它不一定要快,不是为了生产。我正在尝试调试一些东西,而查询的结果正是我需要处理的


谢谢。

也许您可以将每个表的数据拉入.Net集合,然后使用LNIQ对它们进行比较。

也许您可以将每个表的数据拉入.Net集合,然后使用LNIQ对它们进行比较。

仍在试图了解您在寻找什么,但如何:

SELECT term AS word FROM slang
EXCEPT
SELECT animalName AS word FROM allAnimalNames

仍在努力了解您在寻找什么,但以下内容如何:

SELECT term AS word FROM slang
EXCEPT
SELECT animalName AS word FROM allAnimalNames

所有不包含动物名称的俚语:

SELECT word 
FROM slang 
WHERE NOT EXISTS (
  SELECT * 
  FROM animals 
  WHERE word LIKE '%'+ animalName + '%')

所有不包含动物名称的俚语:

SELECT word 
FROM slang 
WHERE NOT EXISTS (
  SELECT * 
  FROM animals 
  WHERE word LIKE '%'+ animalName + '%')

听起来你有一个餐桌俚语和一个餐桌动物,你想要所有俚语不包含动物的组合。这非常简单

SELECT s.Word, a.AnimalName
FROM Slang s INNER JOIN Animal a 
ON s.Word NOT LIKE '%' + a.AnimalName + '%'
如果你只想要那些和任何动物名字都不一样的单词,那么你需要选择那些和它们不一样的单词,然后将它们颠倒过来,但是你如何确定哪个单词和哪个动物名字搭配呢

SELECT Word FROM Slang WHERE Word NOT IN 
(SELECT s.Word
FROM Slang s INNER JOIN Animal a 
ON s.Word LIKE '%' + a.AnimalName + '%') words

听起来你有一个餐桌俚语和一个餐桌动物,你想要所有俚语不包含动物的组合。这非常简单

SELECT s.Word, a.AnimalName
FROM Slang s INNER JOIN Animal a 
ON s.Word NOT LIKE '%' + a.AnimalName + '%'
如果你只想要那些和任何动物名字都不一样的单词,那么你需要选择那些和它们不一样的单词,然后将它们颠倒过来,但是你如何确定哪个单词和哪个动物名字搭配呢

SELECT Word FROM Slang WHERE Word NOT IN 
(SELECT s.Word
FROM Slang s INNER JOIN Animal a 
ON s.Word LIKE '%' + a.AnimalName + '%') words


我不明白你的伪代码。俚语是数组的数组吗?若并没有,那个么若animalName不在word中,因为这意味着word是一个数组,你们会怎么做?我想你的问题中有一个bug。我是SQL Server中尽可能多做的事情的典型代表……但是使用应用程序代码会容易得多。@Louis你能举个例子,或者更彻底地解释一下你在做什么吗?您的问题标题似乎与问题正文不匹配。@RobertMartin抱歉,我修改了伪代码。现在应该有道理了。@Louis不,现在仍然没有。你的意思是说animalName是一个数组,word是列表俚语中的一项吗?如果是这样的话,你要做的就是如果animalName不包含单词{…我不明白你的伪代码。俚语是数组的数组吗?如果不是,如果动物名不在word中,你会怎么做,因为这意味着word是数组?我想你的问题中有一个错误。我是SQL Server中尽可能做到的事情的典型代表…但是使用应用程序代码会容易得多。@Louis你能加入吗包括一个例子,或者更彻底地解释你在做什么?你的问题标题似乎与你的问题正文不匹配。@罗伯特马丁对不起,我修改了伪代码。现在应该有意义了。@Louis不,仍然没有。你的意思是说animalName是一个数组,word是列表俚语中的一个项目吗?如果是,如果不是animalName co,你想做吗恩塔斯语{…谢谢你弄明白我想说什么。我想这会起作用,但我现在还不能确认。我在运行它时遇到了一个错误:无法在like操作中解决日语拼音AI和日语Unicode拼音AI之间的排序冲突。你应该能够在like操作中修复排序规则。Word COLLATE“Japanese拼音AI”例如…+1,用于解决问题并提供有效的解决方案。感谢您理解我想说的内容。我认为这会起作用,但我现在还不能确认。我在运行它时遇到一个错误:无法在类似操作中解决日文CI_AI和日文Unicode CI_AI之间的排序冲突。您应该能够ix like操作中的排序。单词COLLATE'Japanese_CI_AI'like…+1用于找出问题并提供有效的解决方案TSQL中没有负号-你可能是说除了?谢谢。负号在MySQL中,我错误地认为它在TSQL中也是一样的。@RobertMartin:你确定MySQL有负号吗?p.s.我不认为你的答案是否定的nswer将起作用。TSQL中没有负号-你可能是说除了?谢谢。负号在MySQL中,我错误地认为它在TSQL中也是一样的。@RobertMartin:你确定MySQL中有负号吗?还有,我认为你的答案行不通。