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 レポートは現在、最初の出力で展開されていますが、できればよりクリーンにしたいと考えています。