2016-11-14 9 views
0

SQLでうまく機能する分割機能があります。SQL Server 2008の分割機能での結合テーブル列の使用

Usersテーブルこの

ID | Exp 
--------------------------- 
1 | C#,WEBAPI,SQL 
2 | ASP.Net,MVC,HTML,CSS 
3 | HTML,CSS,JavaScript 

のように、私は何かをしようとしています、値としてカンマ区切りの文字列を含む列experienceを持っています

ID | Exp 
--------------------------- 
1 | C# 
1 | WEBAPI 
1 | SQL 
2 | ASP.Net 
2 | MVC 
2 | HTML 
2 | CSS 
3 | HTML 
3 | CSS 
3 | JavaScript 
:私は次のようになる必要があるため

Select 
    U.ID, B.Text 
From 
    Users U, 
    Split(U.Exp, ',') B 

結合の関数で結合テーブルを使用する手掛かりはありますか?

答えて

1

Select U.ID, B.Text 
From Users U cross apply 
    dbo.Split(U.Exp, ',') B(Text); 

あなたの場合U.Expが空の場合でもすべての行をUに保持する場合は、outer applyを使用します。

1

これは、このところで

Select U.ID, B.Text 
From Users U 
CROSS APPLY dbo.Split(U.Exp, ',') B 

のようなものでなければなりません:あなたはcross applyを探しているOUTER APPLYはどのような場合には、それらのすべてを結合するでしょう...

+0

メッセージは常にエラーです:メッセージ4104、レベル16、状態1、行5マルチパート識別子 "U.Exp"はバインドできませんでした。私はすでにクロス結合の代わりに同じクエリを使用しています(どちらも同じです) –

+1

これは代わりに 'CROSS APPLY'ですか? –

+0

@FelixPamittan thx、これは非常に遅く修正されました... – Shnugo

関連する問題