У меня есть таблица клиентов, которую я хочу использовать для заполнения окна параметров в SSRS 2008. cust_num
- это значение, а конкатенация cust_name
и cust_addr
будет ярлыком. Обязательные поля из таблицы:
cust_num int PK
cust_name char(50) not null
cust_addr char(50)
SQL:
select cust_num, cust_name + isnull(cust_addr, '') address
from customers
Что дает мне это в списке параметров:
FIRST OUTPUT - ACTUAL
1 cust1 addr1
2 customer2 addr2
Что я ожидал, но хочу:
SECOND OUTPUT - DESIRED
1 cust1 addr1
2 customer2 addr2
Что я пробовал:
select cust_num, rtrim(cust_name) + space(60 - len(cust_name)) +
rtrim(cust_addr) + space(60 - len(cust_addr)) customer
from customers
Это дает мне первый результат.
select cust_num, rtrim(cust_name) + replicate(char(32), 60 - len(cust_name)) +
rtrim(cust_addr) + replicate(char(32), 60 - len(cust_addr)) customer
Что также дает мне первый результат.
Я также попытался заменить space()
на char(32)
и наоборот
Я пробовал варианты substring
, left
, right
все безрезультатно.
Я также использовал ltrim
и rtrim
в разных местах.
Причина 60 заключается в том, что я проверил максимальную длину в обоих полях, и мне нужно 50, и я хочу, чтобы между полями было пустое поле, даже если максимальное значение поля. Я не очень беспокоюсь об усеченных данных, так как город, штат и почтовый индекс находятся в разных полях, поэтому, если конец уличного адреса отрублен, это нормально, я думаю.
Это не показательный стоппер, отчет SSRS в настоящее время развернут с первым выходом, но я хотел бы сделать его более чистым, если смогу.