如何转换表 - 参见示例?

时间:2011-01-25 21:43:42

标签: sql sql-server

如果有人提出更好的问题标题,我会改变它,但这是我能想到的最好的。

我正在使用SQL Server 2005

是否有一种使用SQL将表'table_1'转换为'table_2'的好方法。

编辑:我不一定要创建新表,我只想在查询中表示它,使其看起来像'table_2'

TABLE_1:

 a   b     
 1   TRUE   
 2   FALSE  
 4   TRUE   
 7   FALSE  
 9   TRUE   
10   FALSE  

TABLE_2:

x    y   z
1    2   TRUE
2    4   FALSE
4    7   TRUE
7    9   FALSE
9   10   TRUE

我想这样做的原因是,如果我有table_3:

TABLE_3:

id    m
a     3
b     4
c     8

我想查询table_2(转换后的table_1),如下所示:

SELECT table_3.id
FROM table_3
FROM table_2
WHERE m BETWEEN x AND y
AND z = TRUE

我会在一段时间内回答以下问题:  我无法改变桌子设计,也没有设计桌子。  3.我有充分的理由不使用c#或其他语言在客户端处理此问题。

感谢

1 个答案:

答案 0 :(得分:1)

尝试自我加入:

select t1.a, min(t2.a), t1.b
from table_1 t1
    inner join table_1 t2 on t2.a > t1.a
group by t1.a, t1.b