在sqlsever里面select * from folder_number where ‘6’ LIKE folder_name + ‘%’,folder_name 数据里面有(***)如何去掉括号及其内容进行匹配
时间: 2024-11-09 10:22:47 浏览: 10
sql-sever.rar_SQL sever_sql的模式定义_修改表模式sql
在SQL Server中,如果你想从`folder_number`表中选择`folder_name`字段包含"6"字串,但要忽略括号和其中的内容,可以使用正则表达式或者字符串函数来进行替换,然后再进行LIKE操作。这里我提供两种可能的解决方案:
1. 使用PATINDEX函数和REPLACE函数:
```sql
SELECT * FROM folder_number
WHERE PATINDEX('%[0-9]%', REPLACE(folder_name, '(*.*)', '')) > 0 AND folder_name LIKE '%6%'
```
`PATINDEX`函数找出数字字符的位置,然后`REPLACE`函数移除所有括号和内容。
2. 使用SQL Server的内置正则函数`REPLACE`和`LIKE`:
```sql
SELECT * FROM folder_number
WHERE folder_name REGEXP '^(?i).*6.*$'
```
如果SQL Server版本支持正则表达式,你可以使用`REGEXP`函数,模式`(?i).*6.*`表示不区分大小写地查找包含"6"的字符串,同时忽略括号。
阅读全文