查询语句求助:表 A 的字段 x 全是数字,表 B 的字段 y 全是数字且长度大于字段 x 值,如果字段 x 值是字段 y 值的一部分或相同,则查询出结果。

2023-05-07 21:21:11 +08:00
 Apol1oBelvedere
查询语句求助:
表 A 的字段 x 全是数字,
表 B 的字段 y 全是数字且长度大于字段 x 值,
--
如果字段 x 值是字段 y 值的一部分或相同,则查询出结果。即如果 123 属于 12345 ,则显示出 12345 的值。

数据库:MS SQL Server 2022
AI 求助:已经求助过,无法给出结果。
1493 次点击
所在节点    MySQL
9 条回复
faketemp
2023-05-07 21:29:27 +08:00
mysql 有个 locate 函数判断字符串包含关系供参考
类似 WHERE LOCATE(A.x, B.y) > 0
zsmj1024
2023-05-07 21:30:39 +08:00
SELECT A.x, B.y
FROM TableA AS A
JOIN TableB AS B
ON CHARINDEX(CAST(A.x AS VARCHAR(255)), CAST(B.y AS VARCHAR(255))) > 0;
huntagain2008
2023-05-08 08:59:03 +08:00
你在胡扯,为什么我用 GPT-4 问,它立刻就给出答案了。

请扮演计算机科学的专家,然后解答以下问题。

表 A 的字段 x 全是数字,
表 B 的字段 y 全是数字且长度大于字段 x 值,
如果字段 x 值是字段 y 值的一部分或相同,则查询出结果。例如 123 属于 12345 ,则显示出 12345 的值。

用到的数据库:MS SQL Server 2022
请帮忙给出 SQL 查询语句。

根据您的需求,您可以使用以下 SQL 查询语句在 MS SQL Server 2022 中查询满足条件的结果:

```sql
SELECT A.x, B.y
FROM 表 A AS A
JOIN 表 B AS B
ON CHARINDEX(CAST(A.x AS VARCHAR), CAST(B.y AS VARCHAR)) > 0;
```

这个查询使用了`CHARINDEX`函数来查找字段 x 值在字段 y 值中的位置。如果字段 x 值是字段 y 值的一部分或相同,`CHARINDEX`函数将返回一个大于 0 的值,满足查询条件。
mingl0280
2023-05-08 09:08:35 +08:00
Select B.y from A inner join B on
mingl0280
2023-05-08 09:12:02 +08:00
Select B.y from A inner join B on CAST(B.y as VARCHAR(255)) LIKE '%'+CAST(A.x as VARCHAR(255))+'%';
还用得着 ChatGPT?
Apol1oBelvedere
2023-05-08 16:21:34 +08:00
@zsmj1024 谢谢。
@huntagain2008 我用的国产 AI ,没有 GPT-4 好。
@mingl0280 谢谢。
Apol1oBelvedere
2023-05-08 16:22:35 +08:00
补充一个语句:
--
请扮演计算机科学的数据库专家,然后解答以下问题。

表 A 的字段 x 全是数字,
表 B 的字段 y 全是数字且长度大于字段 x 值,
如果字段 x 值是字段 y 值的一部分或相同,且字段 x 值长度大于 10 位,则查询出结果字段 x 值, 字段 y 值。

用到的数据库:MS SQL Server
请帮忙给出 SQL 查询语句。
--
根据您的描述,可以使用以下 SQL 查询语句查询满足条件的记录:

```sql
SELECT A.x, B.y
FROM 表 A AS A
JOIN 表 B AS B ON CHARINDEX(CONVERT(VARCHAR, A.x), CONVERT(VARCHAR, B.y)) > 0
WHERE LEN(CONVERT(VARCHAR, A.x)) > 10;
```

这个查询首先通过 `JOIN` 语句将表 A 和表 B 连接在一起,使用 `CHARINDEX` 函数检查字段 x 值是否是字段 y 值的一部分(返回值大于 0 表示是一部分)。然后,在 `WHERE` 子句中过滤出字段 x 值长度大于 10 位的记录。
Apol1oBelvedere
2023-05-08 16:24:24 +08:00
@mingl0280 数据量太大,运算了四十分钟出不来结果,查不出来有什么办法?用 100GB 内存的云数据库吗?
---
消息 802 ,级别 17 ,状态 2 ,第 1 行
缓冲池中的可用内存不足。
panxi
2023-05-08 16:47:16 +08:00
这玩意现在我都交给 gpt4 去做, 效率很高

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/938088

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX