В SQL Server 2005
Если я хочу найти самый правый символ переменной varchar (max), нет проблем:
declare @foostr varchar(max)
set @foostr = 'abcd'
select right (@foostr, 1)
----
d
Если я хочу найти самые правые нулевые символы строкового литерала, нет проблем:
select right ('abcd', 0)
------------------
Возвращает пустую строку.
Если я хочу найти самые правые нулевые символы varchar (10), не проблема:
declare @foostr varchar(10)
set @foostr = 'abcd'
select right (@foostr, 0)
----
Возвращает пустую строку.
Если я хочу найти самые правые нулевые символы varchar (max), хорошо:
declare @foostr varchar(max)
set @foostr = 'abcd'
select right (@foostr, 0)
----
NULL
Возвращает NULL. Почему?