Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SQL -返回空值时如何返回值

SQL -返回空值时如何返回值
EN

Stack Overflow用户
提问于 2021-04-02 17:27:27
回答 2查看 51关注 0票数 0

我正在尝试为SSRS中的一个参数编写一个查询,如果它没有拉回任何数据,它将在参数中放入"None“。以下是我尝试过的方法:

代码语言:javascript
运行
AI代码解释
复制
    select CASE
    WHEN pt.propertynumber IS NOT NULL
      THEN pt.propertynumber 
    ELSE 'None'
    END AS "Field1"
    from projectmaintenanceproperties pmp
    left join projectmaintenances pm on pm.id = pmp.projectmaintenanceid
    left join properties pt on pt.id = pmp.propertyid
    where pm.id in (:Ops)
    and pt.projectid in ( :Proj )
    order by 1

当没有回调数据时,它不会在Field1中返回任何内容。

我怎么告诉它返回'None‘呢?

EN

回答 2

Stack Overflow用户

发布于 2021-04-02 17:34:25

哦,评论是正确的-是我的错。相反,您将需要一个IF语句来检查是否返回了任何值:

代码语言:javascript
运行
AI代码解释
复制
IF EXISTS
(    select CASE
    WHEN pt.propertynumber IS NOT NULL
      THEN pt.propertynumber 
    ELSE 'None'
    END AS "Field1"
    from projectmaintenanceproperties pmp
    left join projectmaintenances pm on pm.id = pmp.projectmaintenanceid
    left join properties pt on pt.id = pmp.propertyid
    where pm.id in (:Ops)
    and pt.projectid in ( :Proj )
    order by 1;
)
THEN select pt.propertynumber [Field1]
    from projectmaintenanceproperties pmp
        left join projectmaintenances pm on pm.id = pmp.projectmaintenanceid
        left join properties pt on pt.id = pmp.propertyid
    where pm.id in (:Ops)
        and pt.projectid in ( :Proj )
    order by 1;
ELSE
    SELECT 'None' AS [Field1];
END IF;
票数 0
EN

Stack Overflow用户

发布于 2021-04-02 18:29:42

好吧,这是一个噩梦,也许能解决这个问题。我之所以做这个噩梦,是因为我曾经有一个查询非常巧妙地使用了UNION和NOT EXISTS来返回一个完全不同的查询,并且在执行第二个查询时导致了一个灾难性的查询计划。

我在下面做的是使用一个假的左外部连接,这个表只有一行到您想要的值表。它是假的,因为连接谓词总是真的。因此,对于查询中的每一行,也将返回ForNone查询中的列,但是会被忽略,因为coalesce将返回查询中的值(除非它为null,如果有可能,您可以在查询中添加检查)。如果您的查询没有结果,则只返回一行,因为and coalesce将使用值'None‘。

代码语言:javascript
运行
AI代码解释
复制
SELECT COALESCE(src.Field1, ForNone.NoneField) AS "Field1"
FROM ( SELECT 'None' AS "NoneField" ) ForNone
LEFT OUTER JOIN ( 
    select pt.propertynumber AS "Field1"
    from projectmaintenanceproperties pmp
    left join projectmaintenances pm on pm.id = pmp.projectmaintenanceid
    left join properties pt on pt.id = pmp.propertyid
    where pm.id in (:Ops)
    and pt.projectid in ( :Proj )
    order by 1
) src ON 1 = 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66923000

复制
相关文章
ExecuteNonQuery()_sql存储过程返回值
本文实例讲述了C#中ExecuteNonQuery()返回值注意点。对于C#数据库程序设计有一定的借鉴价值。分享给大家供大家参考之用。具体分析如下:
全栈程序员站长
2022/10/01
1.2K0
executeupdate mysql_executeUpdate(sql) 返回值是什么?
当executeUpdate(sql)是INSERT、UPDATE 或 DELETE 语句时e69da5e6ba9062616964757a686964616f31333431356566,返回的是受影响的行数(即更新的行数)。
全栈程序员站长
2022/11/01
1.8K0
executeupdate mysql_executeUpdate(sql) 返回值是什么?
ExecuteScalar 返回值
Execute=执行; scalar=数量; so, 从字面意思来讲,可将ExecuteScalar 和ExecuteNonQuery对比来学习。 ExecuteScalar()方法的作用是: 执行查询,并返回查询所返回的结果集中第一行的第一列。所有其他的列和行将被忽略。
全栈程序员站长
2022/09/14
2K0
方法的返回值类型为引用数据类型时
方法的返回值类型为引用数据类型: 基本数据类型:(基本类型太简单,我不准备讲解) 引用数据类型: 1.方法的返回值类型为类名时:返回的是该类的对象。 2.方法的返回值类型为抽象类名时:返回的是该类的子类对象。 3.方法的返回值类型为接口名时:返回的是该接口的实现类的对象。
黑泽君
2018/10/11
2.8K0
有关snprintf返回值
有关snprintf返回值更多信息,请参考:http://bbs.hadoopor.com/thread-1185-1-1.html
一见
2018/08/07
1.4K0
ExecuteNonQuery()返回值问题[通俗易懂]
1.使用update,insert,delete等对数据库中表行进行操作的时候,返回值为所操作的行数(若该条语句未作用在任何一行,则返回0)
全栈程序员站长
2022/10/01
1.5K0
ExecuteNonQuery()返回值问题[通俗易懂]
Jdbc executeUpdate 返回值
原文地址:http://nkadun.iteye.com/blog/1435333
全栈程序员站长
2022/11/01
1.5K0
SpringBoot返回值封装
public static <T> Result<T> success(T data){
用户7741497
2022/08/01
1.4K0
JavaScript中{}+[]和[]+{}返回值
一个返回0,一个返回'[object Object]',互换位置后返回的结果不一样。 空对象转成字符串是'[object Object]',空数组转成字符串是空字符串''。但是第一个返回0。
cultureSun
2023/05/18
1.2K0
JavaScript中{}+[]和[]+{}返回值
ajax同步异步返回值
ajax返回参数时必须用同步async: false,异步会出现undefined错误
似水的流年
2019/12/10
1.7K0
ExecuteScalar()_getchar的返回值
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说ExecuteScalar()_getchar的返回值,希望能够帮助大家进步!!!
Java架构师必看
2022/06/19
1.8K0
Go:命名返回值和直接返回值的使用与潜在隐患
在这个例子中,虽然给命名返回值result赋值了,但最终函数却直接返回了a + b的计算结果,而不是result的值。
运维开发王义杰
2023/08/21
3980
Go:命名返回值和直接返回值的使用与潜在隐患
ajax同步异步返回值
ajax返回参数时必须用同步async: false,异步会出现undefined错误
似水的流年
2018/01/12
1.8K0
PHP方法的返回值
不仅是PHP,大部分编程语言的函数或者叫方法,都可以用return来定义方法的返回值。从函数这个叫法来看,本身它就是一个计算操作,因此,计算总会有个结果,如果你在方法体中处理了结果,比如进行了持久化保存,那么这个函数就不用返回任何内容。而计算的结果是要给外部使用的,这时候就要将计算结果进行返回了。
硬核项目经理
2020/02/17
7.8K0
Linux Shell函数返回值
1) return 语句 shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回。 示例:
阳光岛主
2019/02/19
9.3K0
executeUpdate()返回值「建议收藏」
在jdk1.8中executeUpdate()有两种返回值(搜索一下 PreparedStatement 即可查看到),即有两种返回值不同的方法。返回值分别是:int 和ResultSet
全栈程序员站长
2022/11/01
1.5K0
函数的变量+返回值
函数的变量: 局部变量 和 全局变量 Python中的任何变量都有特定的作用域 在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量 在一个文件顶部定义的变量可供文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量 (1)、局部函数: #!/usr/bin/python def fun(): x = 100 ##定义一个内部的函数是 x = 100,只在fun() 内部有效。 print x fun() 执行结果: [[e
老七Linux
2018/05/31
5.3K0
controller方法的返回值
需要方法结束时,定义ModelAndView,将model和view分别进行设置。
用户10325771
2023/03/14
2.1K0
controller方法的返回值
charles修改接口返回值
我们在测试app时,如果想看大数据量或者空数据时的展示情况,可以通过charles修改接口返回值来实现。
李玺
2021/11/22
1.6K0
charles修改接口返回值
函数的return(返回值)
return之后,函数就停止,return之后的语句将不执行,但是php也不会报错。
十月梦想
2018/08/29
4K0

相似问题

Hibernate返回空的列表,尽管执行的SQL返回值。

32

函数在返回值为enum类型时确实返回空。

24

模块中的返回值返回空?

23

SQL返回值

21

VBA SQL返回空值

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档