我猜可能很容易回答类型问题但我第一次面对它,所以任何帮助都会更受欢迎。
我的查询:
SELECT remarks FROM enroll WHERE remarks LIKE 'REC_%'
输出:
remarks
REC_59161
Reclassify Hedge
预期输出仅为REC_59161
。是_
用于匹配任何单个字符,但我只是想要达到我预期的输出。
答案 0 :(得分:3)
_
是 wildcard Character 。所以你必须使用[]
来逃避它。
<强>查询强>
select remarks
from enroll
where remarks like 'REC[_]%';
答案 1 :(得分:2)
下划线_
字符实际上是LIKE
运算符的特殊字符,%
,[]
和^
:
https://docs.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql
在该文章中,您会看到下划线_
与任何单个字符匹配。
使用ESCAPE
关键字定义转义字符,以允许转义模式匹配字符。我们可以使用!
作为转义字符,所以:
WHERE remarks LIKE 'REC!_%' ESCAPE '!'
答案 2 :(得分:1)
_
是一个通配符,试试这个:
declare @enroll table (remarks varchar(50));
insert into @enroll values ('REC_59161') , ('Reclassify Hedge');
SELECT remarks FROM @enroll WHERE remarks LIKE 'REC[_]%';
答案 3 :(得分:0)
有两个问题:
Rec
中Reclassify Hedge
符合REC
Like
的原因
_
(以及%
)是外卡,你应该逃避 _
的模式查询:
SELECT remarks
FROM enroll
WHERE remarks LIKE 'REC*_%' ESCAPE '*' /* SQL 92 standard */
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
使用三元运算符LIKE(或逆,NOT LIKE),对三个字符串进行操作并返回一个布尔值。 LIKE确定字符串是否与给定的“匹配” “pattern”(也是一个字符串)。字符'%'(百分比) '_'(下划线)在出现时具有特殊含义 图案。可选的第三个参数是一个字符串 包含一个字符,称为“转义字符”,用于 当模式中没有需要百分比或下划线时使用 它的特殊含义。