标签: sql-function

C# 代码中的 SQL Lead 和 Lag 函数

是否可以使用C# 中的LEAD或LAGSQL 函数?

我更喜欢的方法是:

  1. Linq 到 SQL
  2. 实体框架
  3. 动态链接
  4. SQLFunctions 类
  5. 通过 SQLCommand 手动 TSQL

我知道可以通过方法 5 完成,但是方法 1 到 4 呢?

c# sql sql-function sql-server-2012

7
推荐指数
1
解决办法
7864
查看次数

在 PostgreSQL 的 WHERE 子句中使用函数结果

我试图在where子句中使用函数执行的结果,但没有成功:

SELECT clinics.*, distance_between_objects(1, id, 7, 3) AS dist FROM clinics WHERE dist<=1;
Run Code Online (Sandbox Code Playgroud)

给我:Column "dist" does not exists。引用它就像:

SELECT clinics.*, distance_between_objects(1, id, 7, 3) AS dist FROM clinics WHERE "dist"<=1;
Run Code Online (Sandbox Code Playgroud)

也没有帮助。请告知Postgres是否有可能在WHERE子句中使用函数结果而不调用它两次?谢谢!

postgresql select sql-function where-clause

7
推荐指数
1
解决办法
8101
查看次数

Azure Pipelines - CI/CD:如何针对数据库执行文件夹中的所有 .sql 文件

我已将所有 SQL 文件签入 Azure DevOps 上的存储库中。我的命名约定允许我知道哪些 .sql 文件被其他 .sql 文件使用(例如,文件创建一个由存储过程使用的视图)。我想强制使用存储库来跟踪代码更改,并且不希望使用 dacpac 文件。我希望每个函数/视图/存储过程都有它自己的文件。

我的问题是,如何从天蓝色管道对数据库执行与“ ..\Functions\BASE_*.sql ”匹配的所有 .sql 文件?我尝试了以下方法,但不支持多个文件匹配。有更好的选择吗?我需要编写循环脚本并自己完成吗?

# pipeline

trigger:
- master

pool:
  vmImage: 'windows-latest'

steps:
- task: SqlDacpacDeploymentOnMachineGroup@0
  inputs:
    TaskType: 'sqlQuery'
    SqlFile: '$(System.DefaultWorkingDirectory)\Functions\BASE_*.sql'
    ServerName: '$(SQL_ServerName).database.windows.net'
    DatabaseName: '$(SQL_DatabaseName)'
    AuthScheme: 'sqlServerAuthentication'
    SqlUsername: '$(SQL_UserName)'
    SqlPassword: '$(SQL_Password)'
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

Starting: SqlDacpacDeploymentOnMachineGroup
==============================================================================
Task         : SQL Server database deploy
Description  : Deploy a SQL Server database using DACPAC or SQL scripts
Version      : 0.3.23
Author       : Microsoft Corporation
Help         : https://learn.microsoft.com/azure/devops/pipelines/tasks/deploy/sql-dacpac-deployment-on-machine-group
==============================================================================
##[error]Found more …
Run Code Online (Sandbox Code Playgroud)

sql-function azure-sql-database azure-devops

7
推荐指数
1
解决办法
9048
查看次数

没有STRICT修饰符的函数执行速度更快?

我想知道当声明一个简单的SQL函数时性能是否会下降STRICT。我在这里回答问题时偶然发现了这种现象。

为了演示这种效果,我创建了一个简单SQL函数的两个变体,该函数以升序对数组的两个元素进行排序。

测试设置

-- temporary table with 10000 random pairs of integer
CREATE TEMP TABLE arr (i int[]);

INSERT INTO arr 
SELECT ARRAY[(random() * 1000)::int, (random() * 1000)::int]
FROM   generate_series(1,10000);
Run Code Online (Sandbox Code Playgroud)

带STRICT修饰符的功能:

CREATE OR REPLACE FUNCTION f_sort_array1(int[])  RETURNS int[] AS
$$
SELECT CASE WHEN $1[1] > $1[2] THEN ARRAY[$1[2], $1[1]] ELSE $1 END;
$$ LANGUAGE sql STRICT IMMUTABLE;
Run Code Online (Sandbox Code Playgroud)

没有STRICT修饰符的功能(否则相同):

CREATE OR REPLACE FUNCTION f_sort_array2(int[])  RETURNS int[] AS
$$
SELECT CASE WHEN $1[1] > …
Run Code Online (Sandbox Code Playgroud)

postgresql performance strict sql-function

6
推荐指数
1
解决办法
1017
查看次数

如何使用CakePHP查询构建器生成SQL函数调用?

我有一个作者的全名列,并希望将姓氏提取到另一列.我使用以下原始SQL执行此操作:

SELECT name,
SUBSTRING_INDEX(`name`, ' ', -1) AS `surname`
FROM qr.authors;
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

在"使用SQL函数"下,Cookbook说:

除了上述函数之外,func()方法还可用于创建任何通用SQL函数,如year,date_format,convert等.

但是如何通过func()方法创建这个SUBSTRING_INDEX函数,以便我可以将它与CakePHP查询构建器一起使用?

cakephp sql-function query-builder cakephp-3.0

6
推荐指数
1
解决办法
1618
查看次数

SQL Server 在 SQL 函数中执行 (sp_executesql) 命令

我在 SQL Server 中创建了一个函数来执行动态 SQL 查询并返回一个值。在 SQL 查询中调用函数时出现错误:

只能从函数内部执行函数和一些扩展存储过程

功能:(返回与@ModuleName 关联的用户数)

DECLARE @Query NVARCHAR(MAX)
DECLARE @Result int
DECLARE @UsersUsingModule AS NVARCHAR(99)

SET @Query = 'SELECT @UsersUsingModule = Count(UR.UserId) '+
        'FROM       '+@UserDBName+'.[dbo].[aspnet_UsersInRoles] AS UR '+
        'INNER JOIN '+@UserDBName+'.[dbo].[aspnet_Roles] AS R ON UR.RoleId = R.RoleId '+
        'INNER JOIN '+@UserDBName+'.[dbo].[aspnet_Users] AS U ON UR.UserId = U.UserId '+
        'WHERE      LOWER(RoleName) IN ( '+
            'SELECT LOWER([Role]) '+
            'FROM   ADMIN_ROLEACCESS '+
            'WHERE  LOWER(ModuleName) = LOWER(@ModuleName) '+
        ')'

        EXEC sp_executesql @Query, N'@ModuleName nvarchar(max), @UsersUsingModule INT OUTPUT', @ModuleName, …
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures sql-function

6
推荐指数
2
解决办法
2万
查看次数

TSQL错误:具有返回值的RETURN语句不能在此上下文中使用

我只是想创建一个返回select语句的函数,但它给出了错误:

带有返回值的RETURN语句不能在此上下文中使用.

这是我的代码:

CREATE FUNCTION [dbo].[Sample] (@SampleValue int)
RETURNS TABLE
AS
BEGIN
RETURN(
 SELECT * FROM View_sls
)
Run Code Online (Sandbox Code Playgroud)

请让我知道解决方案

sql t-sql sql-server-2005 sql-function

5
推荐指数
2
解决办法
2万
查看次数

在 SQL Server 中连接不同的列值

我正在尝试连接许多列并用逗号分隔,如下所示:

Column
------
abc
bcd
bgd
abc
Run Code Online (Sandbox Code Playgroud)

预期输出: abc,bcd,bgd

我正在使用此代码:

CREATE FUNCTION concatinate(@PK uniqueidentifier)
RETURNS varchar(max)
AS 
BEGIN
    DECLARE @result varchar(max)

    SELECT @result = ISNULL(@result + ', ', '') + Column
    FROM table
Run Code Online (Sandbox Code Playgroud)

我得到的结果是

abc,bcd,bgd,abc
Run Code Online (Sandbox Code Playgroud)

我不能只选择不同的值。请指导。

sql-server sql-function sql-server-2008

5
推荐指数
1
解决办法
8074
查看次数

sql函数将多个dateformat更改为一个dateformat

如何在sql中将多个dateformat更改为一个dateformat?

目前,我正在使用我的java代码.但是,我想改变使用sql函数,这样我就不需要在我的java程序和数据库之间使用另一个连接.

我目前的代码如下:

-

任何指针都会受到赞赏

java sql sql-server performance sql-function

5
推荐指数
1
解决办法
62
查看次数

将 postgres 函数中引用的对象的架构设置为与函数本身相同

schemaname.tablename在我的 postgres 函数中,我对其中的对象(如表和其他函数)使用完全限定名称(例如)。

但在几乎所有情况下,我指的是与函数本身的架构具有相同架构的对象。如何让 postgres 函数知道默认使用与为其中的对象定义的模式相同的模式?

这样我就可以有一个schema_a.myfunctionthat 引用mytable但它将解析为schema_a.mytable,以及一个schema_b.myfunctionthat 也引用mytable但它将解析为schema_b.mytable。

我怎样才能这样设置呢?通过使重构和重命名模式变得容易,它确实可以简化事情。我在许多模式中具有相同的表名,因此不幸的是我必须在所有函数中使用完全限定名称。

这意味着如果我更改模式名称之类的内容,我需要重命名所有 postgres 函数中出现的所有schema_a.to 。schema_new.我想知道是否有更好的方法,因为有时这可能很容易出错(我可能会错过替换或替换我不应该替换的东西)。

sql postgresql sql-function

5
推荐指数
1
解决办法
2219
查看次数