在存储过程中动态生成 查询语句 的问题

ssuunnbbiirrdd 2005-07-27 05:34:00
有这样一个很简单的匹配查询:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER PROCEDURE dbo.Jn_News_SearchEnding
(
@Title Nvarchar(32),
@Name Nvarchar(16),
@AdUserId Int,
@AuditingId Int,
@Result Int OutPut
)
AS
SELECT * FROM News_View WHERE Title=@Title AND Name=@Name AND AdUserId=@AdUserId AND AuditingId=@AuditingId ORDER BY Id DESC

RETURN

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

现在的问题是: 如果传入的 参数(比如说@title)是 空值,那么,查询语句就去掉 title=@title这个条件,查询语句就变成了这样:

SELECT * FROM News_View WHERE AND Name=@Name AND AdUserId=@AdUserId AND AuditingId=@AuditingId ORDER BY Id DESC
这个存储过程怎么写??
...全文
111 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssuunnbbiirrdd 2005-07-27
  • 打赏
  • 举报
回复
thx!!已经在存储过程里面执行成功了,先给分 再研究!!!!
paoluo 2005-07-27
  • 打赏
  • 举报
回复
可以这么写。

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER PROCEDURE dbo.Jn_News_SearchEnding
(
@Title Nvarchar(32),
@Name Nvarchar(16),
@AdUserId Int,
@AuditingId Int,
@Result Int OutPut
)
AS
Declare @SWhere Varchar(1000)
Set @SWhere=IsNull(' And Title='''+@Title+'''','')+IsNull(' And Name='''+@Name+'''','')+IsNull(' And AdUserId='+Rtrim(@AdUserId),'')+IsNull(' And AuditingId='+Rtrim(@AuditingId),'')
EXEC('SELECT * FROM News_View WHERE 1=1 '+@SWhere+' ORDER BY Id DESC')
RETURN

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
ssuunnbbiirrdd 2005-07-27
  • 打赏
  • 举报
回复
不是这个意思,title只是我举的一个例子,
我的意思是 这个查询语句 根据传入的参数 是否为空 而动态生成,如果为空,那么就不要这个条件
phantomMan 2005-07-27
  • 打赏
  • 举报
回复
把查询语句改为:

SELECT * FROM News_View WHERE (@Title is null or Title=@Title) AND Name=@Name AND AdUserId=@AdUserId AND AuditingId=@AuditingId ORDER BY Id DESC
内容概要:本报告基于寻汇与万事达卡在2026年联合发布的《超越自动化:定义智能体驱动的全球支付》白皮书,系统分析了AI智能体在B2B跨境支付领域的应用与发展。报告指出,传统跨境支付存在效率低、人工干预多、合规风险高等问题,当前正从数字化、数据化迈向“自主化”新阶段。AI智能体可在授权下自主完成支付、换汇、合规审核、对账等全流程操作,核心技术包括深度强化学习、自然语言处理和图神经网络,用于路径优化、合规解析与异常检测。报告揭示了决策可解释性不足、跨系统协同标准缺失、安全审计机制缺位三大研究空白,并探讨了法律责任归属、监管碎片化、数据主权与技术可靠性四大现实挑战。寻汇与万事达卡的合作构建了“智能体编排引擎”与全球合规决策网络,首次提出L0-L5的智能体自主化等级框架,推动行业标准化。预计2026至2027年将实现首批大规模商业部署,提升支付效率超30%。; 适合人群:金融科技研究人员、AI技术开发者、跨境支付行业从业者、企业财资管理人员及政策监管机构相关人员。; 使用场景及目标:①理解AI智能体在跨境支付的技术架构与应用场景;②把握自主化支付的演进趋势与商业化前景;③为金融机构和技术公司布局AI驱动型支付系统提供战略参考;④助力监管机构制定适应智能体时代的合规框架。; 阅读建议:本报告兼具技术深度与产业视野,建议结合白皮书原文及相关技术文献对照研读,重点关注智能体决策逻辑、合规实现机制与跨系统集成方案,并关注后续试点项目的实际成效与监管反馈。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧