У меня есть этот бит кода, читаемый в файле фиксированной ширины в таблицу с одним столбцом «A», который создается как varchar (300), после чего считывает эту таблицу как ...
, и в большинстве случаев он возвращает 4-значный год. Я встретив ошибку, когда у меня есть опечатка в файле, который я получил, где год является «20» так LTRIM(RTRIM(CONVERT(VARBINARY,SUBSTRING(A,101,4))))
возвращает 20, и я хотел бы поставить в где заявление фильтр, который говорит, что LEN(LTRIM(RTRIM(CONVERT(VARBINARY,SUBSTRING(A,101,4))))) = 4
TSQL LEN (Подстрока), возвращающий неправильный номер
проблема, когда я бегу LEN(LTRIM(RTRIM(CONVERT(VARBINARY,SUBSTRING(A,101,4)))))
в выбранном заявлении «20» показывается как имеющий 4 LEN. Что это делает?
Я не уверен, почему именно VARBINARY есть, я думаю, что это имеет какое-то значение, когда значение из мэйнфрейма задано как целое, а NULL - как. и это очищает его. Независимо от того, я все еще получаю этот вопрос, когда я удалить CONVERT (VARBINARY.
Что такое преобразование в VARBINARY? Кроме того, что происходит после даты (i, e, это последние данные в строке, если вы не собираете '20', а затем первые 2 символа следующего). – JohnLBevan
Иногда есть «.». вместо числа и преобразования, ltrim и rtrim помогают очистить его. Даже если я делаю DATALENGTH (SUBSTRING (A, 101,4)), я все еще получаю 4 – DKY
Ответил – DKY