Оставьте пробел, игнорируя символ / пробел
У меня есть задача выбрать несколько столбцов и показать каждый набор столбцов в одной строке, но с требуемым форматом. Первый набор данных будет использовать 127 пробелов, включая "AAAA", [LV_WRR], "D", [LV_WRR] и [ID], но длина [ID] варьируется, и это является проблемой. [FTA] должен начинаться с пробела 128, независимо от длины, используемой [ID].
Это то, что я до сих пор:
SELECT
'AAAA'
+ [LV_WRR]
+ 'D'
+ [LV_WRR]
+ [ID]
+ SPACE(120 - LEN([ID]))
+ [FTA]
+ [FT_ID]
FROM MyTable
Столбец [ID] содержит данные различной длины.
Есть идеи?
Благодарю.
1 ответ
Попробуй это:
SELECT
LEFT('AAAA' + [LV_WRR] + 'D' + [LV_WRR] + [ID] + REPLICATE(' ',127),127) + [FTA] + [FT_ID]
FROM MyTable
REPLICATE
создает строку пробелов длиной 127 символов. Это добавляется к строке, образованной другими значениями столбца и константами. LEFT
затем берет 127 крайних левых символов этой строки и добавляет значения из [FTA]
а также [FT_ID]
колонны. Результатом является то, что значение для FTA
всегда начинается с позиции 128.
Пример демонстрации можно найти здесь.