0

我的专栏合二为一!桌子; 例如(你好(德语)=你好,蒙塔格(德语)=星期一)

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值,则可以添加更多 case 表达式。

于 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 回答