It is correct to output null values as empty strings because if there would be null written in the output file, it would be interpreted as a string containing value "null" when read. The null values are important only for programming/scripting languages such as CTL2
. Please note that this is very simplified explanation.
Regarding your second question; when you join all the available data and certain records don't contain all the necessary information, you need to have another source of data to be able to add the required information. Basically if your data inputs don't contain the information you can't force it. Alternatively, you can discard the records that do not comply to the condition by Filter