SQL 用单词 else 替换空的 SQL SELECT 将结果发布到 Oracle

Posted

技术标签:

【中文标题】SQL 用单词 else 替换空的 SQL SELECT 将结果发布到 Oracle【英文标题】:SQL Replace an empty SQL SELECT with word else post the result in Oracle 【发布时间】:2012-08-16 09:45:04 【问题描述】:

我正在尝试解决以下问题:

我想做一个选择,当结果为空时,它应该被替换为“空”,否则结果的所有行都应该在那里。 喜欢:

if (select has no result)

 One Line as result with 'no result'

else

 post every line of the select result

这是我的尝试:

select case when count(*) = 0
   then 'no Entry'
   else Members --all Members should be here
END as Member
from tableMember where Membergroup = 'testgroup';

感谢所有可以帮助我的人!

请告诉我在 Oracle

中使用查询所需的完整代码

【问题讨论】:

如果在 C# 中,在 while(rdr.Read()) 循环中创建一个计数器。如果该计数器保持为 0,则打印一行,否则将它们全部打印.. 嗯……你到处都写过 Oracle,但这些都不是 Oracle 代码……你想做什么? 【参考方案1】:

试试这个:

DECLARE @counter int

SET  @counter = (select count(*) from tableMember where Membergroup = 'testgroup');

IF (@counter > 0)
BEGIN
     SELECT * FROM Members
END
ELSE
BEGIN
     SELECT 'No results!'
END

问候

【讨论】:

【参考方案2】:

ORACLE

DECLARE C INTEGER;
SELECT COUNT(*) INTO C FROM tableMember WHERE Membergroup = 'testgroup';

IF C > 0
THEN
    SELECT * FROM tableMember;
ELSE
    SELECT 'No results!' FROM tableMember;
END IF;

仅限 MS-SQL

IF EXISTS(SELECT * FROM tableMember WHERE Membergroup = 'testgroup')
BEGIN
    SELECT * FROM tableMember
END
ELSE
BEGIN
    SELECT 'No results!'
END

【讨论】:

根据您的尝试更新了您的表名和列名。 这很好,但我该如何开始呢?我有一个 sql 文件,我通常在数据库中进行选择。我不能创建程序等等。我需要它作为一个查询。哪里没有;在声明中? “我该如何启动它”是什么意思?语句中没有;,因为您不需要它们用于 MS-SQL,这是我基于此的,您使用的是什么 RDMS? 我正在使用 oracle。据我所知,每个查询都需要一个 ;在末尾。你能给我完整的代码在oracle中使用它吗?是程序吗? 我制作了一个应该适用于 Oracle 的版本,但我还没有测试过!据我所知,您应该能够像使用任何其他 select 语句一样使用它。【参考方案3】:

我宁愿在应用程序代码而不是存储过程中这样做。您在这里要做的是与用户体验相关的工作,恕我直言,数据库不应该关心这些工作。

【讨论】:

以上是关于SQL 用单词 else 替换空的 SQL SELECT 将结果发布到 Oracle的主要内容,如果未能解决你的问题,请参考以下文章

怎样把一条SQL语句查询出的结果集中的空值替换成0

sql如何空值替换成null?

sql case when then else

SQL Server 在特定列的所有行中查找和替换特定单词

如何从代码中提取出SQL用于调试?

在 T-SQl 中使用 like 搜索由未知数量的空格分隔的单词