基于列值从存储过程调用视图

Posted

技术标签:

【中文标题】基于列值从存储过程调用视图【英文标题】:Call view from a stored procedure based on column value 【发布时间】:2016-08-02 13:34:09 【问题描述】:

我有一个如下所示的数据表。我根据 ID 号创建了具有不同逻辑的多个视图。

谁能告诉我:是否有可能有一个存储过程来执行基于表中可用的id的视图?

在此示例中:ID 1001 具有不同的视图,而 ID 1002 具有另一个视图。

表格将包含特定 ID 在给定时间点的数据。 并且在加载具有不同 ID 的数据之前会被截断

DDL:

declare @table table
(
id int,
sales numeric (10,2),
years date
)

insert @table

select 1001 , 25000,'2005-05-01' union all
select 1001,256565,'2006-10-01' union all
select 1002 , 55000,'2005-10-11' union all
select 1002,56565,'2006-11-21 '

谢谢

【问题讨论】:

您能分享一些为每个 id 创建视图背后的示例逻辑吗? 为什么要为每个 id 创建单独的视图???您应该创建一个视图,然后使用 where 子句。或者可能是一个接收 id 作为参数的存储过程? 您无法执行视图 - 您可以从中选择,但 .... 【参考方案1】:

你需要这样的东西吗?:

If @id = 1001 
SELECT * FROM VIEW_1
If @id = 1002
SELECT * FROM VIEW_2

【讨论】:

以上是关于基于列值从存储过程调用视图的主要内容,如果未能解决你的问题,请参考以下文章

sql 视图 存储过程 的区别?

用ASP调用SQL Server的视图和存储过程

mysql 存储过程视图---创建调用删除

数据库存储过程和视图一般啥时候用

调用 SQL Server 存储过程的 SqlCommand 超时

Mysql:在mysql视图中调用mysql存储过程函数