sql查询去字符串括号
时间: 2023-08-16 09:52:31 浏览: 211
您好!要在 SQL 查询中去掉字符串中的括号,可以使用 REPLACE 函数。例如,如果您想去掉字符串中的所有括号,可以使用以下查询:
```
SELECT REPLACE(REPLACE('hello (world)', '(', ''), ')', '');
```
这将返回字符串 "hello world"。其中,第一个 REPLACE 函数将左括号替换为空字符串,第二个 REPLACE 函数将右括号替换为空字符串。您可以将这个函数应用到您的实际查询中,以去掉您需要去掉的括号。
相关问题
sql server 取字符串多个括号里的数字中文不要
在SQL Server中,如果你想要从包含多个括号的字符串中提取括号内的数字,你可以使用正则表达式和内置函数`PATINDEX()`或`STRING_SPLIT()`配合查询。这里假设数字总是紧跟在左括号之后并且用右括号包围。
例如,你可以使用`PATINDEX`结合`SUBSTRING`函数:
```sql
DECLARE @input NVARCHAR(MAX) = 'abc(123)d(e456)f';
WITH CTE AS (
SELECT 0 AS Pos, SUBSTRING(@input, 1, CHARINDEX('(', @input)) AS SubStr
UNION ALL
SELECT Pos + LEN(SUBSTRING(@input, Pos, CHARINDEX(')', SubStr + ')', @input))),
SUBSTRING(@input, Pos + LEN(SUBSTRING(@input, Pos, CHARINDEX('(', SubStr + ')', @input))), CharIndex(')', @input))
FROM CTE
WHERE CHARINDEX(')', SubStr + ')', @input) > 0
)
SELECT CAST(SUBSTRING(Col, CHARINDEX('.', Col) + 1, LEN(Col)) AS INT) AS ExtractedNumber
FROM (SELECT DISTINCT PatPos - LenPrePos AS Col
FROM CTE
) sub
WHERE Col NOT LIKE '%[^0-9]%'
```
这个查询首先通过递归找到每个括号对的位置,然后从找到的开始位置提取数字。注意这个方法假设每个数字都是单独的,并且不嵌套括号。
sql截取括号内的字符串
您可以使用 SQL 中的 SUBSTRING 和 CHARINDEX 函数来截取括号内的字符串。下面是一个示例:
假设您有一个字符串列 `column1`,其中包含括号和需要截取的内容,例如:
```
column1
-------
Hello (World)
```
您可以使用以下 SQL 语句来截取括号内的字符串:
```
SELECT SUBSTRING(column1, CHARINDEX('(', column1) + 1, CHARINDEX(')', column1) - CHARINDEX('(', column1) - 1)
FROM table1;
```
这将返回 `World`,因为它是在括号中的内容。
阅读全文