sql oracle 数据库以及sqlserver数据库 有两个字符串 1,4,2,3 和1,2,3,4 ,5,6得到字符串5,6
时间: 2024-02-24 08:58:04 浏览: 25
在 Oracle 数据库中,您可以使用 REGEXP_REPLACE 函数将两个字符串合并并选择不同的数字,如下所示:
```
SELECT REGEXP_REPLACE('1,4,2,3,5,6', '(^|,)1($|,)|(^|,)2($|,)|(^|,)3($|,)|(^|,)4($|,)', '') AS result
FROM DUAL
WHERE REGEXP_LIKE('1,4,2,3', '(^|,)5($|,)') OR REGEXP_LIKE('1,4,2,3', '(^|,)6($|,)')
```
这将返回字符串 "5,6",因为它们是第一个字符串中不包含在第二个字符串中的数字。
在 SQL Server 数据库中,您可以使用 CHARINDEX 函数和 SUBSTRING 函数来执行类似的操作,如下所示:
```
SELECT '5,6' AS result
WHERE '1,4,2,3' NOT LIKE '%,5,%' AND '1,4,2,3' NOT LIKE '5,%' AND '1,4,2,3' NOT LIKE '%,5'
OR '1,4,2,3' NOT LIKE '%,6,%' AND '1,4,2,3' NOT LIKE '6,%' AND '1,4,2,3' NOT LIKE '%,6'
```
这也将返回字符串 "5,6",因为它们是第一个字符串中不包含在第二个字符串中的数字。
相关问题
sql oracle 数据库以及sqlserver数据库 有两个字符串 1,2,3 和1,2,3,4 得到字符串4
在 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 运算符等其他运算符来实现。