小编Mee*_*eem的帖子

PostgreSQL:如何在函数的 CASE 表达式中使用 SELECT 语句?

我们可以在函数的 CASE 条件表达式中使用 SELECT 语句吗?
我尝试了以下功能来完成上述任务。

示例:我有一个用于显示包含某些行的表的函数。

create or replace function test(n integer) 
returns table (name text,city text) as
$body$
begin
     case n when 1 then
     select * from table1

     when 2 then
     select * from table2

     when 3 then
     select * from view1

     end;
end;
$body$
language plpgsql;
Run Code Online (Sandbox Code Playgroud)

--调用函数

select * from test(1);  
/*have to show details of table1*/

select * from test(2);
/*have to show details of table2*/

select * from test(3);
/*have to display details of view1*/
Run Code Online (Sandbox Code Playgroud)

postgresql case plpgsql

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

如何在 PostgreSQL 的函数内编写WITH(CTE)

我正在尝试使用“WITH”,它是 PostgreSQL 函数中的公共表表达式。

以下是示例:

例子

 Create or replace function withFunction() returns void as
 $Body$
 Begin
  WITH cmn_l1
  AS
  (
    SELECT "PhoneNumber1","PhoneNumber2",
    DENSE_RANK() OVER(Partition by "PhoneNumber1" Order By "PhoneNumber2" )FoundIn
    From tablename;
  )
 SELECT DISTINCT * INTO temptable
 FROM cmn_l1
 WHERE FoundIn > 1;

 end;
 $Body$
 language plpgsql;
Run Code Online (Sandbox Code Playgroud)

问题:如何在函数内使用WITH执行并获取上表中的值?

postgresql common-table-expression

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

使用SQL Server 2008 R2从Datetime获取日期名称

我需要使用SQL Server 2008 R2从给定的日期时间获取日期名称.

示例:

给定日期:

'2014-11-14 00:00:00'
'2014-11-15 00:00:00'
Run Code Online (Sandbox Code Playgroud)

预期结果:

Date              Day Name of Date
----------------------------------
2014-11-14        Friday
2014-11-15        Saturday
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2008-r2

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

错误:运算符不存在:位 = 整数

我需要将值 1 分配给类型为 bit 的变量。

示例

create or replace function test()
returns void as
$Body$
Declare
       var1 bit :=0;
Begin
       ....
       ....
       var1 := 1;
       ....
       ....
end;
$Body$
language plpgsql;
Run Code Online (Sandbox Code Playgroud)

错误

ERROR:  operator does not exist: bit = integer
Run Code Online (Sandbox Code Playgroud)

postgresql variables bit assign

4
推荐指数
1
解决办法
2582
查看次数

PostgreSQL:如何存储UUID值?

我试图使用PostgreSQL 9.3版本将UUID值存储到我的表中.

示例:

create table test
(
   uno UUID,
   name text,
   address text
);

insert into test values(1,'abc','xyz');
Run Code Online (Sandbox Code Playgroud)

注意:如何将整数值存储到UUID类型中?

postgresql uuid

3
推荐指数
1
解决办法
3456
查看次数

我应该使用哪种数据类型将图像存储在数据库中(PostgreSQL)?

我正在使用PostgreSQL数据库.在这里,我需要将图像存储到数据库中,这些数据库的数量很多,例如数千个.所以我需要知道哪个数据类型使用"bytea"或"Large binary object"?

postgresql image

2
推荐指数
1
解决办法
6972
查看次数

错误:具有默认值的输入参数也必须具有默认值

我试图将默认值设置为参数列表中的函数内的变量,但收到错误:

 Create or replace function test(name varchar default null
                               , city varchar default null
                               , phonenumber varchar(20) default null
                               , out sno bigint, address varchar)
   returns void as
 $$
 Declare 
        phonenumber AS VarChar(20);
 Begin
        phonenumber : =phonenumber; 

    SELECT sno = MAX(ssno)+1 FROM emp;

    IF(sno IS NULL)  then
           sno=IDENT_CURRENT('emp')+1;
    end;

    raise info '%',name;
    raise info '%',city;
    raise info '%',phonenumber;
    raise info '%',address;

    insert into emp(ename,ecity,ephonenumber,eaddress)
    values(name,city,phonenumber,address);

 end;
 $$
 langauge plpgsql;
Run Code Online (Sandbox Code Playgroud)

例:

 Create or replace function test(name varchar default null
                               , city …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql default-value

2
推荐指数
1
解决办法
2815
查看次数

在数据透视查询的填充部分排序

我想使用数据透视查询的内容部分按升序对日期进行排序。

范例

DECLARE @cols AS NVARCHAR(MAX),
        @query  AS NVARCHAR(MAX)

select @cols = STUFF((SELECT  distinct ',' + QUOTENAME(column_date)--(column_date)
              FROM #temp 
              order by column_date /* Error occured here*/
        FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)') 
    ,1,1,'')
PRINT(@cols)
Run Code Online (Sandbox Code Playgroud)

通过order by子句在上述脚本附近获取错误。

错误详情

Msg 145, Level 15, State 1, Line 4  
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
Run Code Online (Sandbox Code Playgroud)

sql-server pivot sql-server-2008-r2

2
推荐指数
1
解决办法
6237
查看次数

PostgreSQL:关系不存在时的异常

当关系不存在然后发生异常时,我试图在这里显示一条错误消息。

范例

Create or replace function fun_test() returns void as
$$ 
Begin
     Truncate testtb;
     Exception 
     When does_not_exist then /* When testtb does not exist*/
          raise info 'Relation does not exists';
     ...
Run Code Online (Sandbox Code Playgroud)

错误:无法识别的异常情况“ does_not_exist”

postgresql

1
推荐指数
2
解决办法
3883
查看次数

指定的强制转换无效(双精度为int)

在这里,我需要将精度转换为整数.

示例:

obj.DayDifference = !string.IsNullOrEmpty(reader["DateDiff"].ToString()) ?   
               (Int32)reader["DateDiff"] : 0;
Run Code Online (Sandbox Code Playgroud)

类型:

  • DayDifference 类型 int

  • DateDiff类型double precisiondatabase table.

错误:

指定演员表无效

c# casting

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