SQL Server 2019, используя T- SQL, я пытаюсь извлечь значения данных между «-» и «/» из столбца номера заказа в таблице заказов. - PullRequest
0 голосов
/ 05 мая 2020

Столбец порядкового номера в таблице заданий базы данных SQL имеет следующую структуру: «2006925-06 / 01».

Строковое значение между «-» и «/» обозначает строку заказа на продажу, которая связана с номером заказа на работу в таблице заданий. Я пытаюсь использовать следующий оператор, чтобы извлечь значение строки заказа на продажу значений и представить его как PulledString. Когда я выполняю инструкцию, я получаю сообщение об ошибке L

Недопустимый параметр длины, переданный в функцию LEFT или SUBSTRING.

Не уверен, что не так?

  , CASE WHEN [ordernumber] Is Not Null THEN 
    SUBSTRING([ordernumber],CHARINDEX('-', [ordernumber], CHARINDEX('-', [ordernumber]) + 1) -0,
        LEN([ordernumber]) - CHARINDEX('/', [ordernumber], CHARINDEX('/', [ordernumber]) + 1) - 
            CHARINDEX('-', REVERSE(rtrim([ordernumber])))) ELSE '' END AS PulledString 

1 Ответ

0 голосов
/ 05 мая 2020

Если всегда два символа, это достаточно просто:

select left(stuff(ordernumber, 1, charindex('-', ordernumber), ''), 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...