Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.databases.ms-sqlserver    |    Notorious Rube Goldberg contraption    |    19,505 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 18,828 of 19,505    |
|    Mark D Powell to All    |
|    How to determine true contents of not nu    |
|    07 Mar 13 09:16:48    |
   
   From: Mark.Powell2@hp.com   
      
   We have a table with a column that shows it must hold a value (nvarchar(7) not   
   null), but when displayed always shows nothing. Since "not null" is specified   
   that made the customer think the column contains one or more spaces.   
      
   I ran the following query (minus from/where) that returned results consistent   
   with the customer view considering that datalength is supposed to return Null   
   for Null. But when I added the ASCII function to see the value Null   
   returned. OK, so it appears    
   that the column is being treated as a zero length string.   
      
   How can a "not null" colummn be empty? Can anyone explain what I am seeing   
   and where specifically in the documentation I can read up on this?   
      
   select coalesce(acceptor,'SPACE'),ISNULL(acceptor,'NULL'),   
    LEN(acceptor), DATALENGTH(acceptor),   
    coalesce(DATALENGTH(acceptor),'X'), nullif(' ',acceptor) "NULLIF",   
    ASCII(acceptor) "ASCII", REPLACE(acceptor,'','X') "NOSPACE",   
    REPLACE(acceptor,' ','X') "SPACE", UNICODE(acceptor)   
   ...   
      
   COALESCE ISNULL LEN DATALENGTH CK_DATAL NULLIF ASCII NOSPACE SPACE UNICODE   
   ........ ...... 0 0 0 NULL NULL ....... ..... NULL   
      
   Curious.   
   -- Mark D Powell --   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca