显示同一字段中的两个不同值

时间:2010-06-18 15:39:10

标签: sql sql-server-2008

嗨,我有两张桌子 1-名称,ID,代码 2 id,价值,概念

一个名称可以有两个概念和两个值。我想要撤回这个: Id,name,value1,value2。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

这将是一个开始:

SELECT
    T.id,
    T.name,
    V1.value AS value1,
    V2.value AS value2
FROM
    My_Table T
LEFT OUTER JOIN My_Values V1 ON V1.id = T.id
LEFT OUTER JOIN My_Values V2 ON V1.id = T.id

但问题是,将值1与值2区分开来的是什么?它是“概念”中的值,是否首先将其添加到数据库中?其他列的id列较高?您的要求没有完全阐明。

答案 1 :(得分:0)

你可以做例如

SELECT t.id, t.name, t.value as value1, t2.value as value2
FROM table2 as t
     INNER JOIN table2 as t2 ON t.id = t2.id AND t.value <> t2.value

但还有很多其他方法可供选择。

修改

SELECT t1.id, t1.name, t2a.value as value1, t2b.value as value2
FROM table1 as t 
     INNER JOIN table2 as t2a ON t.id = t2a.id
     INNER JOIN table2 as t2b ON t.id = tba.id AND t2b.value <> t2a.value

注意:解决方案假设每个id有2行(如果是3行,结果中每个id将获得多行)