请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

求学者 悬赏达人认证 活字格认证

金牌服务用户

126

主题

495

帖子

2087

积分

金牌服务用户

积分
2087

悬赏达人活字格认证

[已处理] sql拼接

求学者 悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2025-4-28 09:10  /   查看:120  /  回复:7
1金币
本帖最后由 求学者 于 2025-4-28 10:43 编辑

在用执行sql命令中,where的语句应该怎么拼接
例如:WHERE a.cust_cd = @cust_cd and a.region= @region and a.indus =@indus and a.`level` =@level  直接这样是查不出数据的
这4个查询条件都有可能为空


我这样写了,就可以查出来了

WHERE 1=1
AND (a.cust_cd = @cust_cd OR @cust_cd IS NULL OR @cust_cd = '')
AND (a.region = @region OR @region IS NULL OR @region = '')
AND (a.indus = @indus OR @indus IS NULL OR @indus = '')
AND (a.`level` = @level OR @level IS NULL OR @level = '')

7 个回复

倒序浏览
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2025-4-28 09:48:02
沙发
您好,这样拼接应该是可以的,执行 SQL 命令时,参数名只要和拼接里的保持一致就行。

然后,参数为空时需求是不过滤还是,获取值为空的数据。
如果是不过滤,拼接 SQL 的时候增加下判断,如果参数为空就不拼接。
回复 使用道具 举报
irishan
注册会员   /  发表于:2025-4-28 09:51:35
板凳
有没有demo,是用的内建库还是外联库,如果是外联库是具体哪个类型的库,比如MySQL或者SQLserver之类的
回复 使用道具 举报
求学者悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2025-4-28 10:08:12
地板
本帖最后由 求学者 于 2025-4-28 10:14 编辑
Simon.Sun 发表于 2025-4-28 09:48
您好,这样拼接应该是可以的,执行 SQL 命令时,参数名只要和拼接里的保持一致就行。

然后,参数为空时 ...

现在这样查不出数据的  
参数为空就是全部
回复 使用道具 举报
求学者悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2025-4-28 10:08:34
5#
irishan 发表于 2025-4-28 09:51
有没有demo,是用的内建库还是外联库,如果是外联库是具体哪个类型的库,比如MySQL或者SQLserver之类的

外联 mysql
回复 使用道具 举报
irishan
注册会员   /  发表于:2025-4-28 10:36:43
6#
用执行SQL命令的是为了查询吗?单纯的查询的话可以用前端的查询命令,里面有个空值策略,如果非要用SQL命令的话就要加条件判断

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
求学者悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2025-4-28 10:42:19
7#
irishan 发表于 2025-4-28 10:36
用执行SQL命令的是为了查询吗?单纯的查询的话可以用前端的查询命令,里面有个空值策略,如果非要用SQL命令 ...

不是很简单
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2025-4-28 13:39:19
8#
感谢大佬们的支持。
跟客户沟通,问题已解决,一开始查询不出数据可能是 SQL 拼接错误原因导致的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部