问题标签 [sql-view]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用存储过程返回视图数据
嗨朋友们,要求是使用存储过程我应该从视图中返回所有值。
目前我们有一个存储过程来返回给定表中的所有值,
我们通过连接两个名为 ExpenseView 的表创建了一个视图,
现在这里的问题就像在第一个存储过程中一样,如何使用存储过程返回上述视图(费用)的所有列。我们尝试使用与第一个过程相同的方法;但是查询中未标识 View ExpenseView。
历史,
从我之前的问题中我了解到,将视图与存储过程一起使用并不好。
然而,我们的应用程序使用下面的 c# 代码使用存储过程从数据库中获取数据,
改变这一点需要大量的时间和额外的编码资源。因此,有什么方法可以返回整个视图(就像我们在给定程序 SuperGas_GetAllEmployees 中所做的那样),以便我可以使用当前代码本身。
谢谢你的帮助
编辑……
在这里,我收到字段费用类型、费用金额、费用日期和视图名称 ExpenseView 的错误
请帮我
sql - 重构使用 row_number() 返回具有唯一列值的行的 tsql 视图
我有一个 sql 视图,我用它来检索数据。可以说它的产品列表很大,这些产品与购买它们的客户相关联。无论链接到多少客户,该视图都应该只返回每个产品的一行。我正在使用 row_number 函数来实现这一点。(这个例子被简化了,一般情况是一个查询,对于某个列 X 的每个唯一值应该只返回一行。返回哪一行并不重要)
现在假设此视图中的总行数约为 100 万,运行 select * from productView 需要 10 秒。执行 select * from productView where productID = 10 等查询需要相同的时间。我相信这是因为查询被评估为此
我认为这导致每次都对内部子查询进行全面评估。理想情况下,我想使用以下内容
但这似乎是不允许的。有没有办法做类似的事情?
编辑 -
经过大量实验,我认为我遇到的实际问题是如何强制连接准确返回 1 行。我尝试使用外部应用,如下所示。一些示例代码。
使用上面的示例集,下面的“获取所有内容”查询
运行大约需要 1000 毫秒。添加显式条件:
花费相同的时间。对于一个相当简单的查询来说,这 1000 毫秒已经太多了,并且在添加其他类似的连接时会以错误的方式(向上)扩展。
mysql - 复杂查询的视图或存储过程?
我有一个有点复杂的查询,其中包含多个(嵌套)子查询,我想为应用程序开发人员提供这些查询。该查询是通用的,并在一组数据集上生成具有计算值的视图,并且开发人员预计只需要查询返回的一些记录(即它们将限制某些实体的 ID 或日期范围或某些的结果这样的)。
我可以看到 3 种方法来实现这一点:
- 让开发人员将查询嵌入到每个应用程序中,并根据需要添加自己的
WHERE
子句。 - 创建一个存储过程,它接受我希望开发人员需要的所有条件作为参数(为了论证,可以说我可以预测在可预见的将来需要什么),该过程将运行复杂的查询并过滤它根据传递的参数。
- 将查询实现为具有多个子视图的视图(因为 MySQL 不允许视图中的子查询),并让开发人员将其用作表并用于
WHERE
让每个应用程序应用他们需要的过滤器。目前我正在查看 3 个额外的子视图,主要是因为一些子查询被多次使用,并且将它们作为子视图执行可以防止重复 - 否则它可能会更糟;-)。
什么是更好的性能明智?(假设所有索引在所有情况下都是等效的)如果可能,请尝试最坏的情况。
你认为在代码维护方面什么会更好?
dynamic - 在sql视图中动态添加子句和参数到sql查询
我正在尝试在 sql server 中创建视图。说我的查询是
这里我不知道where子句中有多少参数。我想在创建视图中动态添加要查询的参数。这取决于用户输入。对于这种情况,我不想在我的应用程序中使用 Linq。这个怎么做?
sql - SQL Server 2008 sys.objects 等效于 sysobjects.uid
有谁知道如何sysobjects
uid
从 2005+ sys.objects
(或其他)视图中获得等效的 SQL Server 2000 列?
我正在尝试转换此代码,因为我们正在摆脱所有sysobjects
引用。
提前致谢,
凯文
mysql - 选择查询比查看快 2-3 倍
此查询单独运行:
大约需要 2.5 秒才能完成。当我将其保存到视图并运行为:
选择 * 从视图名称;
完成需要 7 秒。
是什么原因以及如何使视图更快?
sql - 更改视图中使用的 PostgreSQL 列
我希望 PostegreSQL 放松一点。每次我想更改视图中使用的列时,似乎我必须删除视图,更改字段然后重新创建视图。我可以放弃额外的保护,只告诉 PostgreSQL 让我更改字段,然后计算出对视图的调整吗?
澄清: 我明白什么是视图。事实上,这是因为视图就像一个子查询,我希望我可以只更改基础表并让视图获取更改。
假设我有以下内容:
我真的只想在迁移脚本中执行以下操作,而不必删除并重新创建视图。
sql - 避免代码复制的最佳实践?
目前我必须更改视图,视图代码的很大一部分如下所示:
只是一段代码,将一个字符串组合在一起(代码本身现在甚至不重要,我有 50 个其他示例,其中我有很多代码复制)。现在,我在视图中为另外 30 个字段提供了完全相同的代码,只是“My_Tag_”和 FieldX 正在发生变化。如果这将是 C#,我将只编写一个小辅助函数。当然我也可以在这里写一个函数。但由于这是一个更大的项目,有很多表、视图等,我很快就会有数百个函数。
现在我对 SQL 很陌生,通常我的家是 OOP 世界。但是必须有一个解决方案来避免代码复制并避免在数据库中有数百个帮助函数?
在这种情况下,最佳做法是什么?
sql - 为具有分组的视图生成 id 行
我正在尝试使用如下行号创建一个视图:
我最终得到了重复的行。SELECT DISTINCT
也不行。有任何想法吗?
交易表:
工作表:
查看输出:
sql - 甲骨文。在创建视图时执行存储过程
我有view
一定的field
。现在我需要根据一些逻辑来修改这个字段。我已经在stored procedure
.
现在我想执行这个存储过程,它的结果应该放在 afield
中view
。
程序如下所示:
所以它有一个输入参数和一个输出参数。
在一个view
我需要这样的东西: