Mysql if field null取一些值

时间:2013-01-24 20:17:40

标签: mysql ruby-on-rails

我有这样的代码: (在RoR上):

@types = Type.where("TYP_MOD_ID = ? AND (SUBSTRING(TYP_PCON_START,1,4) <= ?) AND (SUBSTRING(TYP_PCON_END,1,4) >= ?) AND TYP_KV_FUEL_DES_ID = ? ", params[:models], params[:year], params[:year], params[:fueltype]).order("TYP_HP_FROM")

但有时TYP_PCON_END在db中为空....在这种情况下如何使用not null,但是我的值,由ruby(date.now(YEAR))发送?

那么如果field为null又如何使用其他值? 如何检查null,如果不为null (SUBSTRING(TYP_PCON_END,1,4) >= ?)则使用我的代码 另一个:

? >= ?

如果为null?

1 个答案:

答案 0 :(得分:0)

您可以使用COALESCE

SUBSTRING(COALESCE(TYP_PCON_END, 'some default string'),1,4) > ?

如果您不需要子字符串作为默认值,那么您只需这样做:

COALESCE(SUBSTRING(TYP_PCON_END,1,4), 'AAAA') > ?

这是有效的,因为对空值执行SUBSTRING也会产生空值。

相关问题