sql - VARCHAR vs VARCHAR(X) -
this results in 'b':
declare @name varchar(20)=' s' if (@name null or @name='') select 'a' else select 'b' whereas, results in 'a'.
declare @name varchar=' s' if (@name null or @name='') select 'a' else select 'b' the difference varchar(20) vs varchar.
what reason of odd behaviour?
sql server defaults varchar of unspecified length length of 1. , when taken in conjunction microsoft's interpretation of ansi/iso sql-92 (ref here) results in padding compared strings equal length during equality comparisons, resulting in ' ' being = '', hence non-intuitive 'a' in second test.
Comments
Post a Comment