Горизонтально «свернуть» два столбца с соответствующими подстроками в один - PullRequest
0 голосов
/ 27 марта 2019

Мой запрос приводит к таблице, которая выглядит следующим образом:

Unit25  Unit26  Seconds25  Seconds26
A2501   null     383042     null
A2502   A2602    354554     35147
A2503   A2603    344021     33388
A2504   null     359453     null
A2505   null     16702      null
A2507   null     14784      null
null    A2608    null       16997
A2509   A2609    13092      358893
null    A2610    null       291256
A2511   A2611    18770      369082
A2512   A2612    8647       null
A2513   null     65214      null

A25 сопоставляются с соответствующими A26 с помощью подстроки их последних двух цифр.Тем не менее, я хотел бы объединить эти столбцы A25 и A26 в нечто вроде этого:

Unit    TotalSeconds
01       383042
02       389701
03       377409
04       359453
05       16702
07       14784
08       16997
09       371985
10       291256
11       387852
12       8647
13       65214

Я могу получить TotalSeconds, используя ISNULL, чтобы превратить эти нули в 0, и добавив Seconds25 и Seconds26 вместе, но яНе очень уверен, как превратить Unit25 и Unit26 в один столбец подстрок.Любой совет?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Вы можете попробовать это.

select substring(Coalesce(unit25,unit26),4,2) as units,isnull(seconds25,0)+isnull(seconds26,0) from @t
0 голосов
/ 28 марта 2019

Объедините (или удалите) два столбца вместе, чтобы вы всегда получали значение, не имеет значения, какой именно. Получите длину данных, а затем подставьте последние два символа, получив два символа, начиная с длины -1. Например, «A2501» имеет длину пять, поэтому вы хотите подстроку из позиции 4 получить 01.

SUBSTRING(Coalesce(Unit25, Unit26), Len(Coalesce(Unit25, Unit26)) - 1, 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...