问个查询的问题

FrameSniper FrameSniper 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
create procedure udsp_SelectOperationEnterprise
@AreaName nvarchar(16)
as
declare @AreaIndex smallint
set @AreaIndex=isnull(@AreaName,null)
if (@AreaIndex<>null)
set @AreaIndex=isnull((select oeaf_Index from udfdt_OperationEnterpriseArea where oeaf_Name=@AreaName),0)
declare @SelectStatement nvarchar(4000)
set @SelectStatement='select (select oeaf_Name from udfdt_OperationEnterpriseArea where oeaf_Index='+convert(nvarchar(10),@AreaIndex)+') 隶属地区
from udsdt_OperationEnterprise where oef_AreaIndex='+isnull(convert(nvarchar(10),@AreaIndex),'oef_AreaIndex')

execute(@SelectStatement)


这个是我的存储过程,其中操作的有两个表,是主细表的关系。其中udfdt_OperationEnterpriseArea是主表,表示业务单位的归属地。udsdt_OperationEnterprise是细表,表示业务单位的其他内容。也就是说细表中有一个字段放着的是主表中oeaf_Index字段的值。

现在有一个界面,其中有一个下拉框,下拉后显示的内容是主表中与oeaf_Index字段对应的oeaf_Name名称内容。我现在要根据这个条件来让客户做查询

现在情况分为如下类别

一、客户没有选择任何东西,下拉框内容是空的。这个时候执行存储过程的时候会因为@AreaName为空将@AreaIndex也设置为空,最后查询条件形成恒等式。可以查出所有内容。
二、如果客户选择或填写了,这个时候因为@AreaName不为空,所以@AreaIndex要么为0要么为其他实际存在的值。达到实际查询的目的。

各位帮忙看看这个存储过程可以实现这个功能吗?


...全文

相关推荐

评论 22
收藏 已收藏
分享
返回顶部
FrameSniper
MS-SQL Server 34,876 成员 254,635 内容