问题标签 [user-defined-functions]

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.

0 投票
1 回答
206 浏览

sql-server - sql server udf,返回与输入表达式相同的类型

udf 是否可以返回与其参数之一相同的数据类型?

我希望我的 udf 接受任何精度和比例的小数并返回相同的类型。

0 投票
20 回答
447546 浏览

sql-server - 如何从 SQL Server 中的字符串中去除所有非字母字符?

如何从字符串中删除所有非字母字符?

非字母数字怎么办?

这必须是自定义功能还是还有更通用的解决方案?

0 投票
2 回答
220 浏览

sql - 在这种情况下使用 Sql Server Scalar UDF 不好吗?

我正在尝试生成一些用于计算一些最终分数的 sql -> 想想学校里的孩子和他们的年终分数。

我将拥有大约 5 个左右的 Scalar UDF,接受一些简单的值(例如当前分数、subjectid 等),然后输出一个十进制值。

例如。

逻辑只有数学。没有从表 yyy 等中选择 xxx。

那么,在性能方面可以这样做吗?

0 投票
2 回答
34450 浏览

.net - 如何在 .NET 中使用 SQL 用户定义函数?

我在数据库中创建了一个标量函数

现在我想在我的 .NET C# 或 VB.NET 代码中运行它。

我使用实体框架,我试图用函数映射来映射它,但我没有成功。我不在乎用简单的 DbCommand 来做,问题是我没有得到任何结果(该函数存在于 Entities 类中):

有什么解决办法吗?欢迎使用 C# 或 VB.NET 发表文章。

0 投票
4 回答
7996 浏览

sql-server - SQLServer:为什么要避免使用表值用户定义函数?

我在几个存储过程中需要一个相当大的查询,我想将它转换为 UDF 以使其更易于维护(视图不起作用,这需要一堆参数),但是每个人我曾经说过,UDF 的速度非常慢。

虽然我不知道究竟是什么让它们变慢,但我会猜测它们是,但是看到我没有在连接中使用这个 UDF,而是返回一个表变量,我认为它不会会那么糟糕。

所以我想问题是,我应该不惜一切代价避免UDF吗?谁能指出具体的证据表明它们速度较慢?

0 投票
2 回答
4464 浏览

sql-server - 内联表值 UDF 能否胜过 SELECT 列列表中的等效标量 UDF?

这个问题源于SQLServer:为什么要避免使用表值用户定义函数?. 我开始在一些评论中提出问题,对我的评论的回复偏离了主题。


这样您就不必阅读整个讨论:我从未听说过用户定义函数 (UDF) 很慢,或者应该避免使用。在上面提到的问题中发布了一些链接,以说明它们很慢。还是没看懂,求个例子。贴了一个例子,性能差异很大。

我不可能是唯一一个没有意识到性能差异如此之大的人。我觉得这个事实应该分成一个新的问题和答案,以提高它被发现的机会。这就是“问题”。请不要关闭,因为我想让回答者有时间发布答案。

当然,其他人也应该发布答案或示例。我会特别感谢任何能帮助我理解为什么性能差异如此之大的东西。

另请注意,我不是在谈论在 WHERE 子句中使用 UDF。我知道这会如何阻止优化器完成其工作。当原始 UDF 是 SELECT 列列表的一部分时,我对性能差异特别感兴趣。

0 投票
1 回答
2342 浏览

sql-server-2008 - 对每一行进行复杂计算的 SQL Server 查询

这是这种情况。
表一个
可乐1可乐2

表 b
colb1 colb2 colb3 colb4 colb5

表 c
colc1 colc2 colc3

对于 cola2 = colb1 和 colb4 = colc12
的每个值,获取 colb2 对于 cola2 = colb1 和 colb5 = colc3 的每个值,获取 colb3

为每个 cola2 计算 (colb3- colb2) * size * factor1。
计算每个 cola2 的 SUM((colb3- colb2) * size * factor1)
计算每个 cola2 的 AVG((colb3- colb2) * size * factor1)

(colb3- colb2) * size * factor1 的值也需要存储在表中以进行其他计算。我尝试使用多语句表值用户定义函数。但无法在同一个表中返回聚合值和单个值。如何在同一个连接查询中使用多个 UDF?还有其他我可以使用的功能吗?

示例数据: 表 a
id1 prod1

表 b
id1 datefrom dateto id1 id2
id2 datefrom dateto id3 id4

table c
id1 date price
id2 date price
id3 date price
id4 date price
table b(id1) matches table c(id1)
table b(id2) matches表 c(id2)

我需要从表 c 中为表 b 中的两个 id 获取价格,以便我可以减去这些值并找到结果的总和。感谢任何帮助。

0 投票
2 回答
810 浏览

sql - 来自多行的 SQL Concat 字段

我想创建一个函数,它返回给定查询的给定字段的连接字符串。这就是我所做的。这给了我一个错误。 必须声明表变量“@qry”。

我要做的是将查询传递给此函数并接收查询的某些字段的连接字符串。

这可能吗?

我究竟做错了什么?

编辑:顺便说一句,我有 MSSQL Server 2005;

0 投票
2 回答
87 浏览

sql-server - 如何通过将表值传递给它来进行多搜索 SPROC/UDF?

我其实是想实现下面的描述

这是我要传递给服务器的表参数

我够清楚吗?

我不介意以与 xml 不同的方式进行操作。我需要的是选择与其两个列值的数组匹配的值。

0 投票
1 回答
3807 浏览

excel - Excel 条件格式可以在条件中使用 UDF 吗?

我在 Excel 中有一个单元格,我想根据用户定义的公式 (UDF) 设置不同的格式 - 我的公式测试单元格中是否有公式...

我正在尝试对我的 UDF 使用条件格式来格式化单元格 - 但它似乎不起作用。

我的情况是这样的:

我试过不带引号,但得到错误

您不能将对其他工作表或工作簿的引用用于条件格式条件

也许问题与我在单独的宏工作簿中定义的 UDF 而不是我的主工作簿有关...

我在2005 年的这篇博客文章中看到了它,但只是顺便说一句......

提前致谢。克里斯