Hi @pnowojski , thanks for your reply. There are many cases need this feature.
Not only `case when`, but also `nvl`, `greatest` and `least`. Most users
encounter the blank problem is `case when`. Examples have been added in the
test cases. Below I will add some more examples:
1.
```
SELECT country_name
FROM (
SELECT CASE id
WHEN 1 THEN 'GERMANY'
WHEN 2 THEN 'CANADA'
ELSE 'INVALID COUNTRY ID'
END AS country_name
FROM country_id
)
WHERE country_name = 'GERMANY'
```
This sql will output nothing since the blank problem. It is very confused.
2.
```
SELECT country_name, country_info
FROM (
SELECT CASE id
WHEN 1 THEN 'GERMANY'
WHEN 2 THEN 'CANADA'
ELSE 'INVALID COUNTRY ID'
END AS country_name
FROM country_id
) nameTable join infoTable on nameTable.country_name = infoTable.country_name;
```
This sql cannot join correctly since the blank problem. 'GERMANY' in nameTable
becomes 'GERMANY-----------'. BTW, '-' means the blank.
It is true the sql standard returns CHAR type, but nearly all major DBMSs
return VARCHAR without blank-padded.
Thanks, Hequn
[ Full content available at: https://github.com/apache/flink/pull/6519 ]
This message was relayed via gitbox.apache.org for [email protected]