Получение ошибки: Аргумент типа данных varchar недопустим для аргумента 2 функции подстроки - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь получить подстроку из значения столбца, и я получаю следующую ошибку Argument data type varchar is invalid for argument 2 of substring function.

Тип столбца - NvarChar (50) и является системным столбцом для приложения, поэтому я не могу его изменить.

В идеале я бы просто мог выбрать подстроку как часть запроса без необходимости изменять таблицу или создавать представление или другую таблицу.

Вот мой запрос

SELECT SUBSTRING(INVOICE__, ':', 1)
  FROM dwsystem.dbo.DWGroup

Я пытаюсь выбрать только все в строке после определенного символа. В этом случае символ :.

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

Используйте charindex с : в качестве первого аргумента

select substring(invoice__,charindex(':',invoice__)+1,len(invoice__))
  from dwsystem.dbo.dwgroup
1 голос
/ 01 апреля 2019

Параметр SUBSTRING является начальной и конечной позициями, поэтому оба параметра будут иметь номер, как показано ниже

 SELECT SUBSTRING(INVOICE__, 1, 1)
FROM dwsystem.dbo.DWGroup

. Вы можете использовать SUBSTRING_INDEX, так как использовали mysql

SELECT SUBSTRING_INDEX(INVOICE__,':',-1);

пример

SELECT SUBSTRING_INDEX('mytestpage:info',':',-1); it will return   

info 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...