我需要一个查询,将一个表中的字符串列表与另一个表中的字符串列表进行比较。
伪代码可能是:
for each word in slang
if not word.contains(animalName) {
print animalName
}
next slang
它不一定要快,不适合生产。我正在尝试调试某些东西,查询的结果就是我需要使用的东西。
谢谢。
答案 0 :(得分:4)
所以听起来你有一个表Slang
和一个表Animals
,你想要Slang
不包含Animal
的所有组合。这非常简单
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
答案 1 :(得分:3)
所有不包含动物名称的俚语:
SELECT word
FROM slang
WHERE NOT EXISTS (
SELECT *
FROM animals
WHERE word LIKE '%'+ animalName + '%')
答案 2 :(得分:0)
也许您可以将数据拉入每个表的.Net集合中,然后使用LNIQ来比较它们。
答案 3 :(得分:0)
仍然试图了解你在寻找什么,但是如何:
SELECT term AS word FROM slang
EXCEPT
SELECT animalName AS word FROM allAnimalNames