标签: ifnull

MySQL CONCAT IFNULL如何使用两个以上的值?

我需要CONCAT两个字段,如果它们都存在并在第二个字段周围添加括号.否则我只需要列出第一个字段.

这是简单的版本:

SELECT id, CONCAT(name,' (',nickname,')') as name FROM user;
Run Code Online (Sandbox Code Playgroud)

只要名称和昵称都存在,您应该获得如下结果:

1 | Adam (Alpha Dog)
2 | Bob (Bobby)
3 | Charles (Charlie)
Run Code Online (Sandbox Code Playgroud)

但是,如果没有昵称,它只会跳过整个事情null.例如:id 4,name Doug,nickname null给出结果:

4 | null
Run Code Online (Sandbox Code Playgroud)

我想看到的只是列出名称......像这样:

4 | Doug
Run Code Online (Sandbox Code Playgroud)

所以我开始关注CONCAT IFNULL.但是我很难把它弄好.你能帮我吗?

以下是我尝试过的几个例子:

SELECT id, CONCAT(IFNULL(name, ' (', nickname, ')', name) as name FROM user;
SELECT id, CONCAT(name, IFNULL(' (', nickname, ')')) as name FROM user;
Run Code Online (Sandbox Code Playgroud)

mysql concat concatenation ifnull

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

在使用clang ++编译的特定计算机中执行if(null)

我有一个很长的代码,我们在团队中使用了很长时间.但是几个星期以来,当它在我的机器上编译时,它有问题.代码是针对Intel Atom CPU的交叉编译,并在特定计算机上运行.

当它在我的计算机上编译时,与其他任何人不同,它会导致一个segmentation fault.分段错误来自if不应执行的块内部:

Settings *s = &Global::getSettings();
std::cout << "Pointer value before if : " << s << std::endl;
if(s != 0)
{
  std::cout << "Pointer value after if : " << &Global::getSettings() << std::endl;
  .
  .
  .
}
Run Code Online (Sandbox Code Playgroud)

Global::getSettings() 如下:

.
.
.

private:
  static __thread Settings* theSettings;

public:
  static Settings& getSettings() {return *theSettings;}

.
.
.

__thread Settings* Global::theSettings = 0;
Run Code Online (Sandbox Code Playgroud)

在我的测试中,Global :: theSettings的值没有改变,等于零.上面代码片段的输出是这样的:

Pointer value before if : 0
Pointer value …
Run Code Online (Sandbox Code Playgroud)

c++ debian cross-compiling ifnull clang++

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

如何在Where子句中使用IFNULL

IFNULL()我想以这样的方式使用,我可以选择包含 NULL 的记录,或者如果存在值,则选择与特定值匹配的记录。

我的查询是:

SELECT (@v:=2) AS Row, CL.LeaveTypeId, CL.NumberOfLeave
FROM `CompanyLeave` CL
WHERE(IFNULL(CL.EmploymentType,0)=3);
Run Code Online (Sandbox Code Playgroud)

EmploymentType可以包含IntegerNULL

我想选择与指定值匹配的记录,或者,如果没有匹配,则选择包含NULL.

mysql sql ifnull

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

IFNULL() 等价于 PostgreSQL

我正在做一个从 MySQL 迁移到 PostgreSQL 的项目,有些函数在 PostgreSQL 中不能很好地工作,比如IFNULL函数。有的教程说在PostgreSQL中我们可以用NULLIF它来处理。当我尝试时,我遇到了一个问题“ argument of NOT must be type boolean, not type integer”。

这是简单的 SQL:

SELECT * FROM `tableA` WHERE not(nullif(columnA, 0));
Run Code Online (Sandbox Code Playgroud)

如何解决?也许有人可以解释它如何运作良好。谢谢

mysql sql postgresql ifnull nullif

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

Postgres 将空字符串转换为 NULL

我运行 Postgres 数据库并希望将空字符串转换为NULL。以下片段应该对所有列执行此操作,但它不起作用。

SELECT * FROM schema.table NULLIF(columnname,'');
Run Code Online (Sandbox Code Playgroud)

错误信息是:

ERROR:  syntax error at or near "''"
LINE 2:  NULLIF(columnname,'');
Run Code Online (Sandbox Code Playgroud)

sql postgresql null ifnull postgresql-10

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

MySQL - 基于if和join的高级查询

我试图根据连接表的值查询几个表一个查询.

SELECT a.id,a.name,
IFNULL(b.imageurl, 'default image url') AS 'imageurl',
IFNULL(b.imagecategory, '34') AS 'imagecategory',
IFNULL(b.imagetype, 't') AS 'imagetype'
FROM summary a
LEFT JOIN images i ON a.id = b.id
WHERE b.imagetype = 'thumbnail' AND b.imagecategory = '99'
Run Code Online (Sandbox Code Playgroud)

表'a'是主表,包含有关对象的各种信息.

表'b'由每个对象的几个图像URL组成,这些URL使用'imagetype'和'imagecategory'进行过滤,仅匹配每个对象的一个​​图像.

只有表'b'具有匹配的id,imagetype和imagecategory时,两个表的连接才有效.如果没有,只返回表'a'中包含它们的记录,这不是我想要的.我希望表'b'返回使用IFNULL函数设置的默认值,所以我得到一个完整的结果集,即使这个表缺少链接id的值:s.

我怎样才能做到这一点?

mysql sql join ifnull

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

使用 sql - 在选择语句中不为空

我似乎无法弄清楚如何在 sql 中使用 isnull 或 ifnull 语句的反义词。我需要说 ifa.Error1不为空——然后打印' - '和 + CHAR(13)+CHAR(10)。如果 a.Error1 返回空值,基本上应该没有破折号或换行符。因此,如果该字段不为空,则打印信息。

select a. .... 
' - ' + a.Error1 + CHAR(13)+CHAR(10) + 
' - ' + a.Error2 + CHAR(13)+CHAR(10) + 
' - ' + a.Error3 + CHAR(13)+CHAR(10) + 
' - ' + a.Error4 + CHAR(13)+CHAR(10) + 
' - ' + a.Error5 + CHAR(13)+CHAR(10) + 
' - ' + a.Error6                      as 'error_message'
... 
from table1 a 
Run Code Online (Sandbox Code Playgroud)

例如,如果对于给定的记录 error1、2 和 5 返回输出,我希望输出如下:
- Error1: …

sql sql-server null isnull ifnull

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

如何在 MongoDB 的 $match 阶段使用 $ifNull

我在 mongodb 中的聚合中添加了如下条件。

"$match" : {                
$ifNull: ["$startDate", "$createdAt"] : {"$gte": ISODate("2018-06-01 10:03:46.000Z"), "$lte": ISODate("2018-06-29 10:03:46.000Z")}              
}
Run Code Online (Sandbox Code Playgroud)

当我检查startDate它是否未定义或为空时,我得到了,createdAt但它在执行时显示错误。

我的查询有什么问题?

match ifnull

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

C#类获取/设置IEnumerable变量语句错误

在获取和设置另一个具有自己独立的getter和setter的类的枚举时,我在类属性中收到构建错误.以下代码的get {}语句中存在两个相同的错误.我不确定如何解决显示的构建错误:'只有赋值,调用,递增,递减,等待和新对象表达式才能用作语句'.

   public class Data
    {

        private IEnumerable<Client> _clientData;

        private IEnumerable<Company> _companyData;

        public IEnumerable<Client> ClientData
        {
            get { _clientData ?? (_clientData = new List<Client>()); }
            set { _clientData = value; }
        }

        public IEnumerable<Company> CompanyData
        {
            get { _companyData ?? (_companyData = new List<Company>()); }
            set { _companyData = value; }
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# ifnull getter-setter

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