SQL server在Select语句中Join一个表值函数进行关联,转成Mysql去实现方式。

在平台升级过程中,面临SQL Server的Select语句中使用Join表值函数在MySQL中无法直接运行的问题。解决方案是利用MySQL的存储过程或函数+视图来替代表值函数。本文记录了将SQL Server的查询转换为MySQL兼容的过程,提供了一种解决思路,适合遇到类似问题的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记一次平台升级兼容SQL server和MySQL开发解决方案。

某程序功能执行这样一个sql获取数据,原SQL server语句:

SELECT *
FROM BidFile AS A
INNER JOIN dbo.fun_获取指定流程的合格单位(3, '9') AS B ON A.BidFileId = B.BidFileId

该sql语句为简单截取关键一段,在这局sql中select一张表,该表关联join了一个表值函数, 具体是什么不重要,只需要知道表值函数的作用就是返回一个列表集合用于外层sql的关联查询。

然而,在兼容运行在MySQL平台运行环境时,MySQL中没有表值函数,经过个人研究了一会,可以通过使用存储过程去实现获取到等同与SQL server中表值函数生成的列表,但是在MySQL的select中又不能够去使用存储过程。

接着,就去搜索了一些相关资料,了解到可以去使用函数+视图实现这样的查询

第一次接触MySQL记录一下经历,如果遇到类似问题的小伙伴,自己去找两张表,然后仿造这段sql语句,更换表、字段、和参数进行验证,毕竟手敲过的记忆会深刻!


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值