SQL列的下一列不包含

SQL列的下一列不包含,sql,Sql,我如何写条件来表达这一点 其中不包括包含下划线的索引7_ 因此,输出如下所示 SQL_TABLE ID | Index | Name ____| _____ |_____________ 1 | 13 | House_floor 2 | 13 | Room_number1 3 | 7 | Bed_Number1 4 | 7 | Gym 5 | 13 | House_roof 6 | 4 | Room_number2 7 |

我如何写条件来表达这一点 其中不包括包含下划线的索引7_

因此,输出如下所示

SQL_TABLE

ID  | Index | Name
____| _____ |_____________
1   | 13    | House_floor
2   | 13    | Room_number1
3   | 7     | Bed_Number1
4   | 7     | Gym
5   | 13    | House_roof
6   | 4     | Room_number2
7   | 7     | Bed_LivingRoom
8   | 23    | Gym
我写的条件没有给我想要的

ID  | Index | Name
____| _____ |_____________
1   | 13    | House_floor
2   | 13    | Room_number1
4   | 7     | Gym
5   | 13    | House_roof
6   | 4     | Room_number2
8   | 23    | Gym
标准SQL使用LIKE。下划线字符是一个特殊的字符,但LIKE支持转义选项。您可以执行以下操作:

SELECT * 
FROM SQL_TABLE
WHERE Index != 7 AND NOT REGEXP_CONTAINS(Name, '_')
请注意,这通常是not equals的标准运算符。

在搜索模式中,需要使用LIKE进行字符串比较和转义:

SELECT t.* 
FROM SQL_TABLE t
WHERE Index <> 7 AND NAME NOT LIKE '%\_%';
不包含u的条件应仅适用于索引为7的行,因此您可以添加OR条件以包含索引7

SELECT t.* 
FROM SQL_TABLE t
WHERE Index <> 7 AND NAME NOT LIKE '%\_%';
SELECT * 
FROM SQL_TABLE
WHERE
    (Index = 7 AND Name NOT LIKE '%\_%' ESCAPE '\')
    OR Index <> 7;