0

私は1つの列を持っています!テーブル; 例 (Hello(Deutsch)=こんにちは、Montag(Deutsch)=月曜日)

Id, LanguageID, ResourceName, ResourceValue  
1   1           Hello         Hello  
2   2           Hello         Hallo  
3   1           Monday        Monday  
4   2           Monday        Montag  

次のようなクエリの結果を確認するにはどうすればよいですか。

ResourceName   ResourceValue(languageID=1) ResourceValue(LanguageID=2)  
Hello          Hello         Hallo  
Monday         Monday        Montag  
4

2 に答える 2

4

集計関数とCASE式を使用して結果を取得できます。

select ResourceName,
  max(case when languageid = 1 then ResourceValue end) Language1,
  max(case when languageid = 2 then ResourceValue end) Language2
from yourtable
group by resourcename

SQL Fiddle with Demoを参照してください。

追加LanguageIdの値がある場合は、さらにケース式を追加できます。

于 2013-03-24T23:19:37.740 に答える
2

これはうまくいくかもしれません...

select 
    t1.resourcename,
    t1.resourcevalue,
    t2.resourcevalue
from
    tablename t1,
    tablename t2
where
    t1.resourcename = t2.resourcename and
    t1.languageid = 1 and
    t2.languageid = 2
于 2013-03-24T23:15:03.997 に答える