[SQL] Refactors data type pattern matching

Refactors/adds extractors for `DataType` and `Binary*` types to ease and simplify data type related (nested) pattern matching.
This case branch can never be reached since line 114 supersedes it. As a result, "NaN" is always `Double`, bug?