SQL Server存储过程中的Postgresql函数

阿比舍克

我在SQL Server中有一个过程,如下所示:

我试图写一个像上面一样的postgresql函数。我尝试过这样的事情:

CREATE OR REPLACE FUNCTION getadmbyyear(IN a integer, IN b character varying)
  RETURNS TABLE(monname character varying, mon integer, adm integer, selected integer) AS
$BODY$

DECLARE testtypeid int;

select top 1 testtypeid := typeid from Reports_ReportMenu
where ID = $2

select MonName,Mon,Adm,
case when ROW_NUMBER() OVER(ORDER BY Mon,Adm) = '1' then
cast(1 as int) else cast(0 as int) end as Selected 
from eivTestAdms
where test_type_id=testtypeid and "YR"=$1 and Adm is not null
order by Mon,Adm

$BODY$
 LANGUAGE sql;

在这里,我在int的声明语句中遇到语法错误。我是否以正确的格式编写函数?

a_horse_with_no_name

您不能在SQL函数中使用变量,这些变量仅在使用PL / pgSQL时可用。

但是无论如何都不需要该变量。您可以将其放入子选择中。

另外cast(1 as int)是没用的。1已经是整数,所以0那里不需要强制转换。

CREATE OR REPLACE FUNCTION getadmbyyear(IN a integer, IN b character varying)
  RETURNS TABLE(monname character varying, mon integer, adm integer, selected integer) 
AS
$body$
    select MonName, 
           Mon,
           Adm,
           case 
              when ROW_NUMBER() OVER (ORDER BY Mon,Adm) = 1 then 1 
              else 0 
           end as Selected 
    from eivTestAdms
    where test_type_id = (select testtypeid 
                          from Reports_ReportMenu 
                          where ID = $2
                          limit 1)
     and "YR"=$1 
     and Adm is not null
    order by Mon,Adm;
$body$
language sql;

但是SQL Server的bit数据类型通常用作穷人的布尔值。因此,boolean在Postgres中可能应该是真实的。这使得case语句更短:

    select MonName, 
           Mon,
           Adm,
           ROW_NUMBER() OVER (ORDER BY Mon,Adm) = 1 as selected -- this is a boolean expression that will return true or false
    from eivTestAdms

然后,您需要将功能签名调整为:

RETURNS TABLE(monname character varying, mon integer, adm integer, selected boolean) 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server:存储过程中的动态查询

来自分类Dev

在SQL Server存储过程中插入@tablename

来自分类Dev

SQL Server:函数正在存储过程中返回单个字符

来自分类Dev

SQL Server存储过程中的多个表类型参数

来自分类Dev

在SQL Server中的存储过程中使用循环

来自分类Dev

做 ; 表示SQL Server存储过程中的任何内容

来自分类Dev

如何捕获SQL Server存储过程中的错误?

来自分类Dev

在SQL Server存储过程中创建表类型参数

来自分类Dev

SQL Server加密:在存储过程中创建密钥

来自分类Dev

从SQL Server存储过程中检索特定数据

来自分类Dev

SQL Server:存储过程中的并发问题

来自分类Dev

TRY / CATCH bloc在SQL Server存储过程中的位置

来自分类Dev

SQL Server:IF条件在存储过程中不起作用

来自分类Dev

在SQL Server 2012中,如何从视图,函数或存储过程中获取列名和数据类型?

来自分类Dev

在SQL Server中的存储过程中读取xml的问题

来自分类Dev

SQL Server中存储过程中的可选参数

来自分类Dev

SQL Server存储过程中的子例程

来自分类Dev

SQL Server存储过程中的错误

来自分类Dev

如何获取sql server存储过程结果以在其他存储过程中处理?

来自分类Dev

SQL Server:计算存储过程中的可变日期

来自分类Dev

sql server存储过程中的xml参数

来自分类Dev

从存储过程中调用存储在单独的数据库服务器中的sql函数

来自分类Dev

从存储过程中运行特定的SQL Server作业步骤

来自分类Dev

SQL Server:在存储过程中插入游标

来自分类Dev

在SQL Server中的存储过程中读取xml的问题

来自分类Dev

SQL Server存储过程中的IF条件

来自分类Dev

SQL Server:存储过程中的IF THEN ELSE

来自分类Dev

SQL Server:从调用其他存储过程的存储过程中捕获临时表

来自分类Dev

在 SQL Server 2016 存储过程中解析 XML

Related 相关文章

  1. 1

    SQL Server:存储过程中的动态查询

  2. 2

    在SQL Server存储过程中插入@tablename

  3. 3

    SQL Server:函数正在存储过程中返回单个字符

  4. 4

    SQL Server存储过程中的多个表类型参数

  5. 5

    在SQL Server中的存储过程中使用循环

  6. 6

    做 ; 表示SQL Server存储过程中的任何内容

  7. 7

    如何捕获SQL Server存储过程中的错误?

  8. 8

    在SQL Server存储过程中创建表类型参数

  9. 9

    SQL Server加密:在存储过程中创建密钥

  10. 10

    从SQL Server存储过程中检索特定数据

  11. 11

    SQL Server:存储过程中的并发问题

  12. 12

    TRY / CATCH bloc在SQL Server存储过程中的位置

  13. 13

    SQL Server:IF条件在存储过程中不起作用

  14. 14

    在SQL Server 2012中,如何从视图,函数或存储过程中获取列名和数据类型?

  15. 15

    在SQL Server中的存储过程中读取xml的问题

  16. 16

    SQL Server中存储过程中的可选参数

  17. 17

    SQL Server存储过程中的子例程

  18. 18

    SQL Server存储过程中的错误

  19. 19

    如何获取sql server存储过程结果以在其他存储过程中处理?

  20. 20

    SQL Server:计算存储过程中的可变日期

  21. 21

    sql server存储过程中的xml参数

  22. 22

    从存储过程中调用存储在单独的数据库服务器中的sql函数

  23. 23

    从存储过程中运行特定的SQL Server作业步骤

  24. 24

    SQL Server:在存储过程中插入游标

  25. 25

    在SQL Server中的存储过程中读取xml的问题

  26. 26

    SQL Server存储过程中的IF条件

  27. 27

    SQL Server:存储过程中的IF THEN ELSE

  28. 28

    SQL Server:从调用其他存储过程的存储过程中捕获临时表

  29. 29

    在 SQL Server 2016 存储过程中解析 XML

热门标签

归档