mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-27 18:12:02 +00:00
Add multiIf
This commit is contained in:
parent
6fa1204698
commit
0bf7a8c554
@ -39,6 +39,7 @@ public:
|
|||||||
bool isVariadic() const override { return true; }
|
bool isVariadic() const override { return true; }
|
||||||
size_t getNumberOfArguments() const override { return 0; }
|
size_t getNumberOfArguments() const override { return 0; }
|
||||||
bool useDefaultImplementationForNulls() const override { return false; }
|
bool useDefaultImplementationForNulls() const override { return false; }
|
||||||
|
|
||||||
ColumnNumbers getArgumentsThatDontImplyNullableReturnType(size_t number_of_arguments) const override
|
ColumnNumbers getArgumentsThatDontImplyNullableReturnType(size_t number_of_arguments) const override
|
||||||
{
|
{
|
||||||
ColumnNumbers args;
|
ColumnNumbers args;
|
||||||
@ -70,7 +71,6 @@ public:
|
|||||||
throw Exception{"Invalid number of arguments for function " + getName(),
|
throw Exception{"Invalid number of arguments for function " + getName(),
|
||||||
ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH};
|
ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH};
|
||||||
|
|
||||||
|
|
||||||
for_conditions([&](const DataTypePtr & arg)
|
for_conditions([&](const DataTypePtr & arg)
|
||||||
{
|
{
|
||||||
const IDataType * nested_type;
|
const IDataType * nested_type;
|
||||||
|
@ -18,3 +18,23 @@
|
|||||||
7\0 FixedString(2)
|
7\0 FixedString(2)
|
||||||
-8 FixedString(2)
|
-8 FixedString(2)
|
||||||
9\0 FixedString(2)
|
9\0 FixedString(2)
|
||||||
|
0 String
|
||||||
|
1 String
|
||||||
|
-2 String
|
||||||
|
3 String
|
||||||
|
-4 String
|
||||||
|
5 String
|
||||||
|
-6 String
|
||||||
|
7 String
|
||||||
|
-8 String
|
||||||
|
9 String
|
||||||
|
0\0 FixedString(2)
|
||||||
|
1\0 FixedString(2)
|
||||||
|
-2 FixedString(2)
|
||||||
|
3\0 FixedString(2)
|
||||||
|
-4 FixedString(2)
|
||||||
|
5\0 FixedString(2)
|
||||||
|
-6 FixedString(2)
|
||||||
|
7\0 FixedString(2)
|
||||||
|
-8 FixedString(2)
|
||||||
|
9\0 FixedString(2)
|
||||||
|
@ -1,2 +1,5 @@
|
|||||||
SELECT if(number % 2, toFixedString(toString(number), 2), toFixedString(toString(-number), 5)) AS x, toTypeName(x) FROM system.numbers LIMIT 10;
|
SELECT if(number % 2, toFixedString(toString(number), 2), toFixedString(toString(-number), 5)) AS x, toTypeName(x) FROM system.numbers LIMIT 10;
|
||||||
SELECT if(number % 2, toFixedString(toString(number), 2), toFixedString(toString(-number), 2)) AS x, toTypeName(x) FROM system.numbers LIMIT 10;
|
SELECT if(number % 2, toFixedString(toString(number), 2), toFixedString(toString(-number), 2)) AS x, toTypeName(x) FROM system.numbers LIMIT 10;
|
||||||
|
|
||||||
|
SELECT multiIf(number % 2, toFixedString(toString(number), 2), toFixedString(toString(-number), 5)) AS x, toTypeName(x) FROM system.numbers LIMIT 10;
|
||||||
|
SELECT multiIf(number % 2, toFixedString(toString(number), 2), toFixedString(toString(-number), 2)) AS x, toTypeName(x) FROM system.numbers LIMIT 10;
|
||||||
|
Loading…
Reference in New Issue
Block a user