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) 您好,我正在使用 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) 我正在将应用程序从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) 为什么下面的脚本返回NULL而不是0?
DECLARE @number BIGINT = 0;
SELECT NULLIF(@number, '');
Run Code Online (Sandbox Code Playgroud)
根据 MSDN,它应该返回0:
NULLIF
如果两个指定的表达式相等,则返回空值。
对于SQL server,0和''被认为是一样的(=equal)?背后的逻辑是什么?
我正在做一个从 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)
如何解决?也许有人可以解释它如何运作良好。谢谢
我是一个自学成才,模糊的SQL用户.对于我正在编写的视图,我正在尝试开发一个"条件LEFT"字符串拆分命令(可能后来加入'条件RIGHT' - 其中:
所以,如果我们的模式是' - ',
我试图提出一种方法,避免重复任何条款(例如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基础知识1考试指南指出,
Run Code Online (Sandbox Code Playgroud)select NULLIF(1234, 123+1) from dual;算术方程没有被隐含地评估......
然而,当我提交的结果下面的查询是null-它似乎是123 + 1 的评价(虽然我知道查询是不同的).
select NULLIF(124, 123+1) from dual;
Run Code Online (Sandbox Code Playgroud)
那么,这是正确的(对于1Z0-051考试,无论如何)?表达式是否被评估?