@@ -947,6 +947,18 @@ static QVariant fcnCoalesce( const QVariantList &values, const QgsExpressionCont
947
947
}
948
948
return QVariant ();
949
949
}
950
+
951
+ static QVariant fcnNullIf ( const QVariantList &values, const QgsExpressionContext *, QgsExpression *, const QgsExpressionNodeFunction * )
952
+ {
953
+ const QVariant val1 = values.at ( 0 );
954
+ const QVariant val2 = values.at ( 1 );
955
+
956
+ if ( val1 == val2 )
957
+ return QVariant ();
958
+ else
959
+ return val1;
960
+ }
961
+
950
962
static QVariant fcnLower ( const QVariantList &values, const QgsExpressionContext *, QgsExpression *parent, const QgsExpressionNodeFunction * )
951
963
{
952
964
QString str = QgsExpressionUtils::getStringValue ( values.at ( 0 ), parent );
@@ -4575,6 +4587,7 @@ const QList<QgsExpressionFunction *> &QgsExpression::Functions()
4575
4587
<< new QgsStaticExpressionFunction ( QStringLiteral ( " to_dm" ), QgsExpressionFunction::ParameterList () << QgsExpressionFunction::Parameter ( QStringLiteral ( " value" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " axis" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " precision" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " formatting" ), true ), fcnToDegreeMinute, QStringLiteral ( " Conversions" ), QString (), false , QSet<QString>(), false , QStringList () << QStringLiteral ( " todm" ) )
4576
4588
<< new QgsStaticExpressionFunction ( QStringLiteral ( " to_dms" ), QgsExpressionFunction::ParameterList () << QgsExpressionFunction::Parameter ( QStringLiteral ( " value" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " axis" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " precision" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " formatting" ), true ), fcnToDegreeMinuteSecond, QStringLiteral ( " Conversions" ), QString (), false , QSet<QString>(), false , QStringList () << QStringLiteral ( " todms" ) )
4577
4589
<< new QgsStaticExpressionFunction ( QStringLiteral ( " coalesce" ), -1 , fcnCoalesce, QStringLiteral ( " Conditionals" ), QString (), false , QSet<QString>(), false , QStringList (), true )
4590
+ << new QgsStaticExpressionFunction ( QStringLiteral ( " nullif" ), QgsExpressionFunction::ParameterList () << QgsExpressionFunction::Parameter ( QStringLiteral ( " value1" ) ) << QgsExpressionFunction::Parameter ( QStringLiteral ( " value2" ) ), fcnNullIf, QStringLiteral ( " Conditionals" ) )
4578
4591
<< new QgsStaticExpressionFunction ( QStringLiteral ( " if" ), 3 , fcnIf, QStringLiteral ( " Conditionals" ), QString (), false , QSet<QString>(), true )
4579
4592
4580
4593
<< new QgsStaticExpressionFunction ( QStringLiteral ( " aggregate" ),
0 commit comments