2016-11-16 3 views
0

У меня возникли проблемы с последовательностью кода, которая не читает длину моих переменных (это строки штрих-кода) NVARCHAR. У нас есть два разных штрих-кода, а система инвентаризации я настроил только формат оригинала (имеет 7 символов). Новый штрих-код имеет 9 символов. Мне нужно запустить значение цикла через каждый ввод штрих-кода, следовательно, как я установил эту строку сценария.Чтение кода SQL nvarchar length length

Первоначально я думал, что функция DATALENGTH или LEN будет достаточной, но кажется, что она измеряет только переменную как целое, а не 7 символов в строке. Если кто-либо имеет какие-либо указания о том, как манипулировать моей кодовой последовательностью или функцией, которая будет измерять длину переменных nvarchar, это было бы более чем оценено!

CASE WHEN @BarcodeID = LEN(7) 

THEN UPPER(LEFT(@BarcodeID,2))+CONVERT(nvarchar,RIGHT(@BarcodeID,5)[email protected]) 
ELSE UPPER(LEFT(@BarcodeID,3))+CONVERT(nvarchar,RIGHT(@BarcodeID,6)[email protected]) END 

Еще раз LEN(7) функция в начале, кажется, моя проблема.

+0

Есть ли вопрос, который здесь скрывается? –

+0

Да Я отредактировал оригинальную публикацию, это был мой первый раз когда-либо публиковал здесь. Обычно получайте много отличных результатов, когда мне нужна помощь в написании кодов! –

ответ

2

Возможно, что вы пытаетесь сделать, это на самом деле

CASE WHEN LEN(@BarcodeID) = 7 

С помощью @BarcodeID = LEN(7) вы в основном тестирование, чтобы увидеть, если переменная @BarcodeID равна 1, так как функция LEN(), "Returns the number of characters of the specified string expression." Имплицитно преобразования 7 в односимвольная строка.

+0

Работал отлично! Огромное спасибо. –