我想创建一个固定长度的平面文件(用','分隔),但是当一个字段有一个空值时,记录会移动。请参见下图(不正确的Jenny和Roland记录):
来源表:
Name Color Balance Zip Code ------- ------ ------- -------- Melissa Orange $200.00 40240 Karl Blue $150.00 40884 Jenny -null- -null- 45667 Roland -null- $110.00 53366 Vincent Green $285.00 45677
我想得到的输出:
Correct_Ouput ---------------------------- Melissa,Orange,$200.00,40240 Karl ,Blue ,$150.00,40884 Jenny , , ,45667 Roland , ,$110.00,53366 Vincent,Green ,$285.00,45677
我想得到的输出:
Wrong_Output ---------------------------- Melissa,Orange,$200.00,40240 Karl ,Blue ,$150.00,40884 Jenny ,,,45667 Roland ,,$110.00,53366 Vincent,Green ,$285.00,45677
我尝试搜索但是我得到null为空字符串结果。
请帮忙。谢谢。
答案 0 :(得分:2)
使用COALESCE(column,' ')
功能。
对于某些数据库,您可以使用IFNULL或NVL。有关详细信息,请参阅this web page。
答案 1 :(得分:0)
您可以使用 NVL 将 NULL 值替换为所需数量的空格以保留格式。
例如,
SQL> SELECT 'Karl' NAME,
2 NVL('Blue', ' ') color,
3 NVL('$150.00',' ') balance,
4 40884 zip_code
5 FROM dual
6 UNION ALL
7 SELECT 'Jenny' name,
8 NVL(NULL, ' ') color,
9 NVL(NULL,' ') balance,
10 45667 zip_code
11 FROM dual
12 /
NAME COLOR BALANCE ZIP_CODE
----- ----- --------- ----------
Karl Blue $150.00 40884
Jenny 45667
SQL>
您也可以使用 DECODE 。
例如,
DECODE(column, NULL, ' ')