标签: coalesce

麻烦在sql中使用COALESCE函数

我正在尝试执行以下操作:

SELECT forename, 
       forename2, 
       surname,
       (SELECT (COALESCE(LEFT(forename, 2)),"") + 
               (COALESCE(LEFT(forename2, 1)),"") + 
               (COALESCE(LEFT(surname, 1)), "") as Mnemonic)
from Persons
Run Code Online (Sandbox Code Playgroud)

试图获得前2个字母的forename,forename2的第一个字母(如果not null),以及姓氏的第一个字母(如果不是null),""空字符串,其中存在null.

任何帮助将非常感谢,问候,Bserk

sql sql-server coalesce

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

基于多个条件的PostgreSQL更新列

设置:

我使用PostgreSQL 9.1.2并有一个基本表,如下所示,我有4个二进制列,可以采用值Y或N.这些列也主要包含Null值,我在下表中表示为' - ' :

    Binary Col 1   Binary Col 2   Binary Col 3   Binary Col 4   Summary Col
    ------------   ------------   ------------   ------------   -----------
1.       Y             N               -             N               1
2.       -             Y               N             Y               2
3.       N             N               -             N               0
4.       -             -               -             -               -
5.       Y             Y               Y             Y               4         
Run Code Online (Sandbox Code Playgroud)

问题:

我想在我的表中包含一个Summary List,它根据这4个二进制列中出现的'Y'的数量来填充.我在上表中给出了5个示例条目来展示所需的输出.需要注意的一件重要事情是,我希望能够区分条目3(没有'Y'观察到)和条目4之类的情况(所有二进制列都为空).这是一次性工作,我没有关于这个重复列如何影响我的表的事务速度的性能问题.

我查看了很多PostgreSQL"更新表"示例,并在此处查看了手册.但是,我找不到具有多个条件的更新过程的示例,我相信这是必需的.

或者可能是我完全错了,解决方案需要SQL函数或触发器,任何提示或建议?

postgresql case coalesce sql-update postgresql-9.1

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

How do I use COALESCE to return 'N/A' when the value of a TIMESTAMP column is NULL?

Is it possible to use COALESCE (or any other way) to replace NULL values from a TIMESTAMP column with a string like 'N/A'?

In my SELECT statement I have a

CASE WHEN n.expiration_date::date IS NULL THEN 'N/A' ELSE n.expiration_date::date END
Run Code Online (Sandbox Code Playgroud)

When I try this, I get this error, which makes sense:

invalid input syntax for type date: "N/A"

I found this blog post too about this problem. Is there a way around it?

postgresql coalesce sql-timestamp sql-null

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

使用Coalesce为逗号分隔列表

Coalesce will return the first non-null value among its arguments文件说.我也可以像下面这样使用它:

DECLARE @ColumnValue VARCHAR(MAX);
SELECT @ColumnValue = COALESCE(@ColumnValue+',','') + ColumnValue
FROM dbo.TableA
SELECT @ColumnValue
Run Code Online (Sandbox Code Playgroud)

根据我的理解,,输出列表的最前面应该有一个,因为从一开始就至少会有一个逗号作为参数传递.另外,如果我在第二个参数中加入一些值.它出现在最前面而不是,我预期的那样.

如果有人可以请我解释代码.我将非常感激.

sql sql-server coalesce

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