标签: nullif

C#中是否有等效的SQL NULLIF函数?

C#中是否内置等效的SQL NULLIF函数?

可能看起来像的示例:

double? result
double denominator = 0;
double Numerator = 100;
result = Numerator / NullIf(denominator, 0);
result = Numerator / denominator.NullIf(0);
result = Numerator / Object.NullIf(denominator, 0);
Run Code Online (Sandbox Code Playgroud)

.net c# null nullif

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

如果为空,则返回替代值?

您好,我正在使用 postgres 12。我已经学习了几天了。

我想知道是否可以写入 CREATE TABLE 阶段:IF column_x is NULL, return 'alternative value'

这是我当前的表:

CREATE OR REPLACE FUNCTION update_modified_column()
RETURNS TRIGGER AS $$
BEGIN
      NEW.modified = NOW(); 
      RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TABLE example (
    id BIGSERIAL NOT NULL PRIMARY KEY,
    entry_name VARCHAR(150) NOT NULL UNIQUE,
    about VARCHAR(1500),
    org_type VARCHAR(150),
    category VARCHAR(150),
    sub_categories VARCHAR(300),
    website_link VARCHAR(300) UNIQUE,
    membership VARCHAR(100),
    instagram VARCHAR(150) UNIQUE,
    twitter VARCHAR(150) UNIQUE,
    link_lists VARCHAR(100) UNIQUE,
    facebook VARCHAR(200) UNIQUE,
    youtube VARCHAR(200) UNIQUE,
    podcast VARCHAR(200) …
Run Code Online (Sandbox Code Playgroud)

postgresql nullif

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

Delphi XE2:如何传递空值的字段?

我正在将应用程序从Delphi 5转换为Delphi XE2,并遇到了使用BDE的情况.

在Delphi XE2中,他不接受传递null为一个外键的字段,后面是这个当前在Delphi 5中工作的方式:

ParamByName('id').datatype: = ftInteger;
Run Code Online (Sandbox Code Playgroud)

使用BDE在Delphi XE2中发生的错误:在表YY中的外键"XX"的主键值中

使用相同的错误以下列方式进行测试:

ParamByName('id').datatype: = ftInteger;
ParamByName('id').value: = NULL;

ParamByName('id').DataType: = ftstring;
ParamByName('id').clear;

ParamByName('id').DataType: = ftstring;
ParamByName('id').Bound: = true;

ParamByName('id').Value: = null;

ParamByName('id').IsNull;
Run Code Online (Sandbox Code Playgroud)

如何传递空值的字段?

更新:

数据库:

CREATE TABLE TEST_1 (
    ID_1 INTEGER NOT NULL,
    ID_TEST_2 INTEGER NULL,
    DESC_1 VARCHAR(10) NULL,
    PRIMARY KEY (ID_1)
);

CREATE TABLE TEST_2 (
    ID_2 INTEGER NOT NULL,
    DESC_2 VARCHAR(10) NULL,
    PRIMARY KEY (ID_2)
);

ALTER TABLE TEST_1 ADD FOREIGN KEY FK_TEST(ID_TEST_2) REFERENCES TEST_2(ID_2);
Run Code Online (Sandbox Code Playgroud)

德尔福XE2:

Close;
SQL.Clear; …
Run Code Online (Sandbox Code Playgroud)

delphi nullif

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

T-SQL NULLIF 返回 NULL 为零

为什么下面的脚本返回NULL而不是0

DECLARE @number BIGINT = 0;

SELECT  NULLIF(@number, '');
Run Code Online (Sandbox Code Playgroud)

根据 MSDN,它应该返回0

NULLIF
如果两个指定的表达式相等,返回空值。

对于SQL server,0''被认为是一样的(=equal)?背后的逻辑是什么?

sql t-sql sql-server nullif sql-server-2017

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

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万
查看次数

SQL Server:ISNULL(复合NULL条件,'一个字符串')在某些情况下仅返回第一个字符

我是一个自学成才,模糊的SQL用户.对于我正在编写的视图,我正在尝试开发一个"条件LEFT"字符串拆分命令(可能后来加入'条件RIGHT' - 其中:

  • 如果一个字符串(我们称之为'haystack')包含一个特定的模式(让我们称之为'needle'),它将被修剪到该模式的左侧
  • 否则,整个字符串将不加改变地传递.

所以,如果我们的模式是' - ',

  • '包含模式的长字符串'将输出为'长字符串'
  • '没有模式的字符串'将按原样返回.

我试图提出一种方法,避免重复任何条款(例如if 0 < CHARINDEX,然后采取CHARINDEX-1等),而不是使用最粗略的方法来实现这一点NULL.

然而 - 这就是我想要创造性的东西 - 我已经达到了似乎是一个非常基本的绊脚石.请注意以下代码和结果,并让我知道您是否可以复制它 - 因此它是否是一个错误或我错过了一些特殊的东西.我已经在2008 R2和2014的SQL Server上测试过这两款Express版本.

select
    -- ISNULL: returns 'a big old string'
    ISNULL(null, 'a big old string'),

    -- NULLIF: returns NULL
    left(
        'a big old string',
        nullif
        (
            CHARINDEX
            (
                'needle',
                'haystack'
            ), 0
        ) - 1
    ),

    -- combined: returns just 'a' (1st character of ISNULL condition)
    ISNULL(
        left
        ( …
Run Code Online (Sandbox Code Playgroud)

sql sql-server string isnull nullif

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

是否在NULLIF()中隐式计算了算术方程

我的SQL基础知识1考试指南指出,

select NULLIF(1234, 123+1) from dual;
Run Code Online (Sandbox Code Playgroud)

算术方程没有被隐含地评估......

然而,当我提交的结果下面的查询是null-它似乎是123 + 1 评价(虽然我知道查询是不同的).

select NULLIF(124, 123+1) from dual;
Run Code Online (Sandbox Code Playgroud)

那么,这是正确的(对于1Z0-051考试,无论如何)?表达式是否被评估?

sql oracle nullif

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

标签 统计

nullif ×7

sql ×4

postgresql ×2

sql-server ×2

.net ×1

c# ×1

delphi ×1

ifnull ×1

isnull ×1

mysql ×1

null ×1

oracle ×1

sql-server-2017 ×1

string ×1

t-sql ×1