У меня есть простая проблема с функцией SQL SERVER charindex
.SQL Server charindex с объявленной переменной
DECLARE @VAR1 varchar
SET @VAR1 = 'abcdef'
PRINT CHARINDEX('c', @VAR1)
Данное заявление необходимо распечатать но отпечатки . Зачем?
У меня есть простая проблема с функцией SQL SERVER charindex
.SQL Server charindex с объявленной переменной
DECLARE @VAR1 varchar
SET @VAR1 = 'abcdef'
PRINT CHARINDEX('c', @VAR1)
Данное заявление необходимо распечатать но отпечатки . Зачем?
При п (длина) не указано в определении данных или переменной заявление, длина по умолчанию 1.
Делают это, как это и ваша проблема решена:
DECLARE @VAR1 varchar(10)
SET @VAR1 = 'abcdef'
PRINT CHARINDEX('c', @VAR1)
Для получения дополнительной информации, проверьте THIS.
спасибо за ответ и ссылку. Также узнал об этом: «Когда n не указывается при использовании функций CAST и CONVERT, длина по умолчанию равна 30. ' –
@ Тим приятно! Не забудьте всегда указывать длину! :) –
Потому что вы не объявили длину переменной 'varchar', поэтому она была усечена одним символом. Вы увидите это, если вы будете использовать PRINT @ VAR1; '. См. Http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx –