Treatment of blanks

The following example creates a table named spaces that has both fixed- and variable-length character columns:

create table spaces (cnot char(5) not null, 
    cnull char(5) null,  
    vnot varchar(5) not null, 
        vnull varchar(5) null,  
    explanation varchar(25) not null) 

insert spaces values ("a", "b", "c", "d", "pads char-not-null only") 
insert spaces values ("1    ", "2    ", "3    ", "4    ", "truncates trailing blanks") 
insert spaces values ("    e", "    f", "    g", "    h", "leading blanks, no change") 
insert spaces values ("   w ", "   x ", "   y ", "    z ", "truncates trailing blanks") 
insert spaces values ("", "", "", "", "empty string equals space") 

select "[" + cnot + "]", 
       "[" + cnull + "]", 
       "[" + vnot + "]", 
       "[" + vnull + "]",  
    explanation from spaces 
                                   explanation
 -------  -------  ------- ------- --------------------
 [a    ]  [b]      [c]      [d]     pads char-not-null only 
 [1    ]  [2]      [3]      [4]     truncates trailing blanks
 [    e]  [    f]  [    g]  [    h]  leading blanks, no change
 [   w ]  [   x ]  [   y ]  [   z ]  truncates trailing blanks  
 [ ]      [ ]      [ ]      [ ]     empty string equals space

(5 rows affected)

This example illustrates how the column’s datatype and null type interact to determine how blank spaces are treated: