SQL通配符“%”和“_”已有详细记录并广为人知。然而,作为w3schools explains,还有“charlist”样式通配符用于匹配给定范围内或外的单个字符,例如,查找所有名为Carl的人,而不是那些名为Earl的人:
select * from Person where FirstName like '[A-D]arl'
...或者找到相反的情况,使用:
select * from Person where FirstName like '[!A-D]arl'
或(取决于RDBMS,大概):
select * from Person where FirstName like '[^A-D]arl'
这种类型的通配符是SQL-92标准的一部分,以及哪些数据库实际支持它?例如:
答案 0 :(得分:2)
SQL-99标准有一个SIMILAR TO
谓词,它使用“charlist”样式以及“%”和“_”通配符。
尽管如此,SQL-92标准中没有类似的内容(没有双关语)。
答案 1 :(得分:1)
“charlist”运算符看起来像正则表达式或它们的有限子集。 AFAIK在SQL-92中没有指定正则表达式语法,尽管许多数据库支持正则表达式,并且它们支持它的方式各不相同。例如,Oracle具有进行正则表达式比较和替换的功能。不知道别人怎么做。
分享并享受。