-1

tb1(アカウント、ステータス)とtbl2(アカウントstatus_ex)の2つのテーブルがあります。例えば

account    status
0001       A
0002       CD
0003       AB

account    status_ex
0001       78
0002       NULL
0003       9

2つのステータス列を組み合わせるクエリを作成したいのですが、結果テーブルは次のようになります。

account    status
0001       A78
0002       CD
0003       AB9

次のクエリを試してみました

select tb1.account, 
  stuff(tbl1.status, len(tbl.status)+1, len(tbl.status), tb2.status_ex) as status
from tb1 left join tb2
on tbl.account=tb2.accont

しかし、結果は正しくありません、私がしたことは間違っていますか?

4

2 に答える 2

5
SELECT 
  tb1.account, 
  status = COALESCE(tb1.status, '') + COALESCE(tb2.status, '')
FROM tb1 INNER JOIN tb2 -- is LEFT JOIN right? Not sure.
ON tb1.account = tb2.account;
于 2012-09-24T19:49:29.297 に答える
3

IsNull()値を使用して連結することができます( SQL Fiddle with Demoを参照):

select t1.account,
  isnull(t1.status, '') + isnull(t2.status_ex, '') status
from tb1 t1
inner join tb2 t2
  on t1.account = t2.account

データ型の内容を投稿していないstatus_exため、status_exフィールドが別のデータ型である場合は、次のようにする必要がありますcast()

select t1.account,
  isnull(t1.status, '') 
    + isnull(cast(t2.status_ex as varchar(10)), '') status
from tb1 t1
inner join tb2 t2
  on t1.account = t2.account
于 2012-09-24T19:51:13.370 に答える