sql oracle 数据库以及sqlserver数据库 有两个字符串 1,2,3 和1,2,3,4 得到字符串4
时间: 2024-02-24 20:58:01 浏览: 52
在 Oracle 数据库中,您可以使用 REGEXP_REPLACE 函数将两个字符串合并并选择不同的数字,如下所示:
```
SELECT REGEXP_REPLACE('1,2,3,4', '[^4,]', '') AS result
FROM DUAL
WHERE REGEXP_LIKE('1,2,3', '(^|,)4($|,)')
```
这将返回字符串 "4",因为它是第一个字符串中不包含在第二个字符串中的数字。
在 SQL Server 数据库中,您可以使用 CHARINDEX 函数和 SUBSTRING 函数来执行类似的操作,如下所示:
```
SELECT SUBSTRING('1,2,3,4', CHARINDEX('4', '1,2,3,4'), 1) AS result
WHERE '1,2,3' NOT LIKE '%,4,%' AND '1,2,3' NOT LIKE '4,%' AND '1,2,3' NOT LIKE '%,4'
```
这也将返回字符串 "4",因为它是第一个字符串中不包含在第二个字符串中的数字。
相关问题
sql oracle 数据库以及sqlserver数据库 有两个字符串 得到两个字符串的差值
在 Oracle 数据库中,您可以使用 MINUS 运算符获取两个 SELECT 语句的差集,如下所示:
```
SELECT column_name
FROM table1
MINUS
SELECT column_name
FROM table2
```
这将返回 table1 中存在但 table2 中不存在的行。
在 SQL Server 数据库中,您可以使用 EXCEPT 运算符执行类似的操作,如下所示:
```
SELECT column_name
FROM table1
EXCEPT
SELECT column_name
FROM table2
```
这也将返回 table1 中存在但 table2 中不存在的行。
请注意,这些运算符要求两个 SELECT 语句的列数和数据类型必须相同。如果您要比较多个列或者列的数据类型不同,您可以使用 JOIN 运算符或者 UNION ALL 运算符等其他运算符来实现。
阅读全文