Sql 在多个列中查找一个条件

Sql 在多个列中查找一个条件,sql,Sql,数据库noob在这里,您将如何在更多可能包含该词的列中查找搜索条件?例如,我有3个容器列,我正在查找其中某个容器编号/名称出现的记录。由于数据库的结构,容器号只是出现在其中一列中,但我需要它可能出现的所有记录。 对不起,英语不好, 干杯试试这个: SELECT * FROM @Table WHERE '|' + A + '|' + B + '|' + C + '|' like '%foobar%' 对于包含列a、B和C的表,是否将3的结果连接起来,并查看哪些行包含介于两者之间的foobar

数据库noob在这里,您将如何在更多可能包含该词的列中查找搜索条件?例如,我有3个容器列,我正在查找其中某个容器编号/名称出现的记录。由于数据库的结构,容器号只是出现在其中一列中,但我需要它可能出现的所有记录。 对不起,英语不好, 干杯

试试这个:

SELECT * 
FROM @Table
WHERE '|' + A + '|' + B + '|' + C + '|' like '%foobar%'
对于包含列a、B和C的表,是否将3的结果连接起来,并查看哪些行包含介于两者之间的foobar

例如:

DECLARE @Table TABLE (
    A VARCHAR(100) NOT NULL,
    B VARCHAR(100) NOT NULL,
    C VARCHAR(100) NOT NULL
);


INSERT INTO @Table (A,B,C)
Values ('aaa',    'bb',  'cc'),
       ('foobar', 'bb',  'cc'),
       ('foo',    'bar', 'cc')


SELECT *
FROM @Table
WHERE '|' + A + '|' + B + '|' + C + '|' like '%foobar%'
将只返回第二行,因为它是唯一提到foobar的地方。 注:

  • 我假设没有使用“|”,但如果使用,可以用其他字符替换
  • 如果希望内容完全是foobar,可以使用类似“%|foobar |%”的

  • 关于这件事,你的确切问题是什么?为什么不使用
    条件搜索所有三列?如果您在尝试中遇到困难,请将您的where条件与OR组合起来