Удалить первый символ вывода данных - PullRequest
0 голосов
/ 03 октября 2019

Доброе утро. Мне нужно удалить значения NULL и первый символ данных, выводимых из символьного поля со следующими значениями: NULL, A12345, A123456, A123456789, байты в диапазоне 6–10.

Есть лиспособ объединить isnull и right (len одновременно?) Этот предпочтительный метод, учитывая некоторую дополнительную компиляцию данных, которая должна произойти вниз по течению, когда mycolumn - 1 будет использоваться в качестве первичного ключа.

Попробовал несколько вариантов на этом безsuccess, также использовала строку и вызвала синтаксическую ошибку

select isnull(right([my column],''len[my column]-1)  [my column]

Это удалит нулевые значения

[my column] = isnull([my column],'') 

Но это не удалит 1-й символ

right([my column], len([my column]-1) [my column]

Ответы [ 3 ]

2 голосов
/ 03 октября 2019

неправильная скобка проблема, это должно работать.

right([my column], len([my column])-1) [my column]

, а также вы можете использовать STUFF функцию

STUFF([my column], 1,1,'') [my column]
0 голосов
/ 03 октября 2019

Ваш запрос должен выглядеть примерно так:

SELECT ISNULL(RIGHT([Value], LEN([Value])-1), ' ') AS NewValue FROM MyTable

Вы можете проверить выполнение здесь:

SQL Fiddle

Настройка схемы MS SQL Server 2017 :

 CREATE TABLE MyTable
            (ID int,
            Value varchar(max),
            )

INSERT INTO MyTable (ID,Value)VALUES(1,NULL)      
INSERT INTO MyTable (ID,Value)VALUES(2,'A12345')      
INSERT INTO MyTable (ID,Value)VALUES(3,'A123456')      
INSERT INTO MyTable (ID,Value)VALUES(4,'A123456789')      

Запрос 1 :

select ISNULL(right([Value], len([Value])-1), ' ') [Value] from MyTable

Результаты :

|     Value |
|-----------|
|           |
|     12345 |
|    123456 |
| 123456789 |
0 голосов
/ 03 октября 2019

Попробуйте,

right([my column], len([my column])-1) [my column]

-1 позиция неверна.

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