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: