SQL列的下一列不包含
我如何写条件来表达这一点 其中不包括包含下划线的索引7_ 因此,输出如下所示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 |
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;