0

私は次のようなデータを持っています:

tblBio

bio        bioid
some data  1
some data  2

tblContact

email        email_pub    bioid
me@me.com    1            1
you@me.com   0            2

選択する必要があります

bio + 'email: ' + email WHERE email_pub = 1

私は現在持っています:

SELECT b.bio + 'Email: ' + COALESCE(c.email, '')
FROM tblbio b
INNER JOIN tblContact c ON b.bioid = c.bioid
WHERE c.email_pub = 1
AND b.bioid = 1

ただし、email_pubが1に設定されている場合にのみ、常にbioを選択し、テキスト「email:」と電子メールアドレスを末尾に追加する必要があります。「WHEREemail_pub = 1」を指定すると、email_pubが0​​の場合になります。その後、何も選択されません。

同様に、「Email:」というテキストは、公開されたEメールがない場合でも常に表示されます。

ありがとうございました、

トーマス

4

2 に答える 2

6

これは、式のインライン評価にCASE-が使用されるシナリオです。CASE

SELECT b.bio + 'Email: ' + CASE WHEN email_pub=1 THEN COALESCE(c.email, '') ELSE '' END
FROM tblbio b
INNER JOIN tblContact c ON b.bioid = c.bioid
WHERE b.bioid = 1
于 2012-05-23T13:41:55.007 に答える
5

を使用しCASEます:

SELECT b.bio + case when email_pub = 1 then 'Email: ' + COALESCE(c.email, '') else '' end
FROM tblbio b
INNER JOIN tblContact c ON b.bioid = c.bioid
WHERE b.bioid = 1
于 2012-05-23T13:41:19.203 に答える