Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中,如果破折号后有超过3个字符,如何排除记录_Sql - Fatal编程技术网

在SQL中,如果破折号后有超过3个字符,如何排除记录

在SQL中,如果破折号后有超过3个字符,如何排除记录,sql,Sql,在SQL中,如果破折号后有超过2个字符,如何排除记录 示例我只想返回与以下内容匹配的记录 AA00000-0 但该表也有类似AA0000-000、AA0000000-00的记录 我只需要返回破折号后面有一个位数的记录,如“%-[0-9]” 填充程序假定SQL Server: SELECT * FROM records WHERE id NOT LIKE '%-[0-9][0-9]%' 使用like语句 字段,如“%-[0-9]”您使用的是什么数据库 在MSSQL中,您可以:其中fld不像前面提

在SQL中,如果破折号后有超过2个字符,如何排除记录

示例我只想返回与以下内容匹配的记录 AA00000-0

但该表也有类似AA0000-000、AA0000000-00的记录

我只需要返回破折号后面有一个位数的记录,如“%-[0-9]”

填充程序假定SQL Server:

SELECT * FROM records WHERE id NOT LIKE '%-[0-9][0-9]%'
使用like语句


字段,如“%-[0-9]”
您使用的是什么数据库


在MSSQL中,您可以:
其中fld不像前面提到的“%-\code>

,数字匹配在数据库中是不一致的

对于SQL Server,您可以执行以下操作:

类似“%-[0-9]”的MyColumn
(将在破折号后只显示一个数字)

数据库不可知:


MyColumn-LIKE“%-\u”
(将匹配破折号后的数字1个字母,但这可能足够了)

感谢所有的答案,我使用的解决方案是

Like '%-_'

对于哪个数据库,单下划线表示破折号后的第一个数字?跨数据库不支持字符串比较…这将在破折号后提供两个字符。请详细说明。它应该排除破折号后面有2个或更多数字的记录。+1/2表示不可知,+1/2表示将“破折号后面的单个数字”解释为破折号后面可能包含的单个字符。