如何像表一样处理结果集?

时间:2014-07-15 12:23:58

标签: sql-server tsql cross-apply

DECLARE @Test TABLE (id INT,smo NVARCHAR(100),grad NVARCHAR(100),lst int)

INSERT INTO @Test
SELECT 11,'Ali','G',1
UNION ALL
SELECT 11,'Ali','C',1
UNION ALL
SELECT 11,'Ali','F',0
UNION ALL
SELECT 12,'Veli','C',1
UNION ALL
SELECT 12,'Veli','G',1


SELECT t.id, t.smo, t.grad,c.* FROM @Test t
CROSS APPLY(
SELECT  MIN(lst) glst FROM @Test t1
WHERE t1.id=t.id
GROUP BY id, smo
) c

@Test表实际上是另一个查询的结果。

我想要的是,从“第一个”中收到最小值。每个' smo'值。

使用交叉应用我可以实现我想要的,当它是一张桌子时。

当我处于这样的状态时,我该如何解决呢?

SELECT * FROM (
SELECT * FROM @Test 

) t

enter image description here INPUT

enter image description here 预期的输出

提前感谢您的帮助......

0 个答案:

没有答案