标签: coalesce

Ruby Sequel是否具有SQL"coalesce"功能的等效功能?

在SQL中为了避免获取NULL值,我可以使用"coalesce"函数来替换它,如下所示:

SELECT COALESCE(some_column, 0) FROM some_table;  
Run Code Online (Sandbox Code Playgroud)

但我找不到用Sequel做同样事情的方法.

coalesce sequel

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

什么是Oracle PL/SQL COALESCE函数的C#等价物?

是否有一个语句或一行方式来完成这样的事情,其中​​字符串s被声明并且在表达式中分配了第一个非空值?

//pseudo-codeish
string s = Coalesce(string1, string2, string3);
Run Code Online (Sandbox Code Playgroud)

或者,更一般地说,

object obj = Coalesce(obj1, obj2, obj3, ...objx);
Run Code Online (Sandbox Code Playgroud)

c# oracle coalesce

5
推荐指数
2
解决办法
1035
查看次数

SQL如何查找非空列?

我有一个包含大量列的表,比如我有列

A B C D

在每个列中,只会填充任何一个记录中的一列,其他列将始终为NULL.

我需要一个select语句,它将返回非null列的Column.

我尝试过coalesce,但这会返回一个值,而不是值所属的列.

有人知道最简单的方法吗?

sql null coalesce

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

C#coalesce运算符不替换null方法返回值?

我有这个代码:

MyClass _localMyClass = MyClassDAO.GetMyClassByID(123) ?? new MyClass();
Run Code Online (Sandbox Code Playgroud)

这是方法:

    public static MyClass GetMyClassByID(int id)
    {
        var query = from m in ctx.MyClass
                    where m.MyClassID == id
                    select m;

        return query.FirstOrDefault<MyClass>();
    }
Run Code Online (Sandbox Code Playgroud)

因此FirstOrDefault(),在实体框架上下文中找不到命中,这是"ctx"对象.因此,要返回的'default'值是null,因为查询的目标是一个类.

第一个代码的??结果,使用,导致_localMyClass什么?我会说它会是new MyClass().相反,_localMyClass最终为空.我尝试用各种括号分组逻辑,但仍然没有运气.

还在; 当我设置一个调试断点,并将其复制/粘贴MyClassDAO.GetMyClassByID(123) ?? new MyClass()到Visual Studio的监视屏幕时,结果是new MyClass()而不是null.

任何人都可以解释为什么它会以这种方式工作吗?为什么它不能识别方法返回值null然后使用该new部分?

c# coalesce null-coalescing-operator null-coalescing

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

MySQL,多行来分隔字段

我有一个MySQL表,其中包含以下字段和数据;

PartNumber  Priority SupName
a1            0        One
a2            0        One
a2            1        Two
a3            0        One
a4            1        Two
a5            2        Three
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个视图,其中具有多行的部分组合成一行,并分成单独的字段,如

理想情况下;

PartNumber  Sup1  Sup2  Sup3
a1          One   NULL  NULL
a2          One   Two   NULL
a3          One   NULL  NULL
a4          Two   NULL  NULL
a5          Three NULL  NULL
Run Code Online (Sandbox Code Playgroud)

或者我可以忍受这个

PartNumber  Sup1  Sup2  Sup3
a1          One   NULL  NULL
a2          One   Two   NULL
a3          One   NULL  NULL
a4          NULL  Two   NULL
a5          NULL  NULL  Three
Run Code Online (Sandbox Code Playgroud)

我将如何构建视图或select语句来实现此目的?

我到目前为止最接近的是;

SELECT PartNumber, 
       IF(Priority=0, SupName, NULL) …
Run Code Online (Sandbox Code Playgroud)

mysql sql pivot group-by coalesce

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

SQL - GROUP BY和COALESCE的丑陋组合

我有一个表格,其数据类似于以下内容:

[ID],[州],[foo],[DateCreated],[DateUpdated]

我在这方面工作的时间越长,我的SQL就会变得更加丑陋,这告诉我,我可能做错了什么.我想要的是每个国家的唯一清单,只要该国的foo总是相同的(如果foo对于该州的所有记录都不相同,我根本不想要那个国家).此外,我想要COALESCE DateCreated和DateUpdated,并希望该状态的最大值.

所以给出这样的数据:

[ID], [State], [foo], [DateCreated], [DateUpdated]
1,  MA, data1,  05/29/2012, 06/02/2012
2,  MA, data1,  05/29/2012, 06/03/2012
3,  RI, data2,  05/29/2012, NULL
4,  RI, data3,  05/29/2012, NULL
5,  NH, data4,  05/29/2012, NULL
6,  NH, data4,  05/29/2012, 06/05/2012
Run Code Online (Sandbox Code Playgroud)

我只想要这些结果:

[State], [foo], [LastUpdated]
MA, data1,  06/03/2012
NH, data4,  06/05/2012
Run Code Online (Sandbox Code Playgroud)

得到我所追求的最优雅的方法是什么?

sql group-by sql-server-2000 coalesce max

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

输入"空白"的"数字类型的无效输入语法"

我有一个使用NUMERIC类型的三列表.但是,其中两个没有任何东西(即空).这是代码:

CREATE TABLE profiles(
ID SMALLINT,
FID SMALLINT,
SURVEY VARCHAR(100),
PROFILE VARCHAR(100),
TYPE VARCHAR(100),
SOURCE VARCHAR(100),
NR_TRACES NUMERIC,
TRACE_SPACE_M NUMERIC,
LENGTH_M NUMERIC,
IMAGES TEXT,
COMMENTS TEXT
);

ALTER TABLE profiles ADD ts tsvector;

UPDATE profiles SET ts = to_tsvector('english', ID || ' ' || FID || ' ' || coalesce(SURVEY,'') || ' ' || coalesce(PROFILE,'') || ' ' || coalesce(TYPE,'') || ' ' || coalesce(SOURCE,'') || ' ' || coalesce(NR_TRACES,'') || ' ' || coalesce(TRACE_SPACE_M,'') || ' ' || coalesce(LENGTH_M,'') …
Run Code Online (Sandbox Code Playgroud)

coalesce tsvector postgresql-9.2

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

错误:COALESCE类型的时间戳不带时区,并且不能匹配整数(PostgreSQL)

##问题##

我从此脚本(Postgresql 9.3.2)中收到错误(
在MS SQL Server中可以)

SELECT 
 CASE COALESCE(my_date_field,0) 
 WHEN 0 THEN 0 
 ELSE 1 END 
 AS status
FROM 
 my_table
Run Code Online (Sandbox Code Playgroud)

Error :COALESCE types timestamp without time zone and integer cannot be matched
Line 2 : CASE COALESCE(my_date_field,0)

## 解决了 ##

SELECT 
  CASE WHEN my_date_field IS NULL 
  THEN 0 ELSE 1 END 
  AS status
FROM 
  my_table
Run Code Online (Sandbox Code Playgroud)

COALESCE几乎接受任何数量的参数,但是它们应该是相同的data-type
我引用了TSQL中的COALESCE函数

coalesce postgresql-9.3

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

在QueryDsl中与BigDecimal合并

我正在尝试使用QueryDSL进行Coalesce而没有任何运气.

这是我想要做的:我有一些OrderOrderItem对象的对象.每个OrderItem都有一个价格(BigDecimal).对于每一个Order,我想要一个元组中返回的ID Order以及它的OrderItem价格总和.我的模型和我的查询实际上比这更复杂,因此,我必须在子查询中进行求和.

这是我写的:

NumberSubQuery<BigDecimal> sumQuery = new HibernateSubQuery()
            .from(qOrderItem)
            .where(qOrderItem.order.eq(qOrder))
            .unique(qOrderItem.price.sum());

HibernateQuery query = new HibernateQuery(session).from(qOrder)
.list(new QOrderTuple(qOrder.id, sumQuery))
Run Code Online (Sandbox Code Playgroud)

OrderTuple 是一个只包含两个字段的元组:id(long)和priceSum(BigDecimal).

我写的查询工作正常.现在,我想确保如果Order没有OrderItem,则sumQuery返回0(而不是null,现在如此).我因此修改了我的子查询如下:

    NumberSubQuery<BigDecimal> sumQuery = new HibernateSubQuery()
            .from(qOrderItem)
            .where(qOrderItem.order.eq(qOrder))
            .unique(qOrderItem.price.sum().coalesce(BigDecimal.ZERO));
Run Code Online (Sandbox Code Playgroud)

问题是此代码无法编译,因为unique()现在返回的类型SimpleSubQuery<BigDecimal>.但是,构造函数QOrderTuple需要a NumberExpression<? extends BigDecimal>而不是a SimpleSubQuery<BigDecimal>.

我也尝试将添加asNumber()coalesce(),但我得到了NumberExpression<?>,这是不被接受的构造函数既不.最后,我尝试使用显式Java强制转换来编译代码,但它在运行时失败:

java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at …
Run Code Online (Sandbox Code Playgroud)

coalesce querydsl

5
推荐指数
0
解决办法
1827
查看次数

如何在Java中编写智能合并代码?

object.getProperty().getSubProperty().getSubSubProperty();

考虑上面的代码.一个对象有一个属性,它有一个subProperty,有一个subSubProperty,可以用getter方法访问.

我们可以用Java做些什么来实现以下目标:

Util.coalesce(object.getProperty().getSubProperty().getSubSubProperty(), defaultSubSubProperty);

org.apache.commons.lang3.ObjectUtils.defaultIfNull有这样的事情.但是这个方法的问题是它只在property和subProperty不为null时才有效.即使property和subProperty为null,我想要一种获取subSubProperty或defaultSubSubProperty的方法.

我们应该怎么做?

java coalesce nullpointerexception null-coalescing

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