在SQL查询的函数中使用if或else

SajjadZare

我使用以下查询,但引发错误:

CREATE FUNCTION getCustomerPaymentFunc (@customerCode bigint ) 
RETURNS bigint AS BEGIN
    RETURN 
    ( if(select coun from getCustomerPaymentCount (@customerCode))=0)
     select 0 as price      
      else          
        (select SUM(price) as code 
         from PaymentLog 
         where customerCode=@customerCode)
    ) END

我使用以下两个,但说:

函数中包含的select语句无法将数据返回给客户端

CREATE FUNCTION getCustomerPaymentFunc (@customerCode bigint ) 
RETURNS bigint AS BEGIN
RETURN 
(
  SELECT CASE WHEN (select coun from getCustomerPaymentCount(@customerCode))=0      
     THEN 0 ELSE 1 END as
 (select SUM(price) as code from PaymentLog 
  where customerCode=@customerCode)
     ) END
w

看来您的意图是让该函数返回PaymentLog给定表中价格的总和,customerCode如果customerCode不存在,则返回0 如果正确,则可以执行以下操作:

CREATE FUNCTION getCustomerPaymentFunc (@customerCode bigint) RETURNS bigint AS 
BEGIN
    DECLARE @result bigint
    SET @result= (SELECT ISNULL(SUM(price), 0) FROM PaymentLog WHERE customerCode = @customerCode)
    RETURN @result
END

如果customerCode不在存在PaymentLog表中的SUM()函数将返回NULL,你可以使用的COALESCE或者ISNULL功能,以取代NULL与价值0

请参见MSDN:COALESCEISNULL

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PHP中使用if / else检查SQL查询

来自分类Dev

案例中使用聚合函数的SQL查询

来自分类Dev

在休眠SQL查询中使用Postgis函数

来自分类Dev

在Doctrine本机查询中使用SQL函数

来自分类Dev

案例中使用聚合函数的SQL查询

来自分类Dev

在SQL查询中使用函数的结果

来自分类Dev

如何在SQL函数中使用SQL查询

来自分类Dev

在SQL查询中使用内联函数和CTE

来自分类Dev

SQL问题,在查询生成的表中使用聚合函数

来自分类Dev

在枢轴函数中使用sum(column)的SQL查询

来自分类Dev

如何在HQL查询中使用本机SQL函数?

来自分类Dev

在SQL查询中使用MAX函数过滤数据

来自分类Dev

在具有JOIN的查询中使用GROUP BY SQL函数

来自分类Dev

PL/SQL 查询列并在函数调用中使用它

来自分类Dev

Postgres在查询中使用函数

来自分类Dev

Postgres在查询中使用函数

来自分类Dev

在WHERE中使用IF ELSE进行PostgreSQL查询

来自分类Dev

在SQL查询中使用解码

来自分类Dev

在SQL查询中使用变量

来自分类Dev

在SQL查询中使用jDateChooser

来自分类Dev

在 SQL 查询中使用变量

来自分类Dev

如何在SQL Plus / SQL-PL中使用迭代或作为函数运行查询?

来自分类Dev

无法在来自 Lotus Note DB 的 PYODBC SQL 查询中使用 sql 内置函数

来自分类Dev

使用VBA函数查询SQL

来自分类Dev

使用VBA函数查询SQL

来自分类Dev

使用 Max 函数的 SQL 查询

来自分类Dev

使用else / if语句或SQL查询是否更快?

来自分类Dev

在SQL中使用CASE函数

来自分类Dev

在Elasticsearch查询中使用聚合函数