当前位置: 代码迷 >> Sql Server >> sql查询语句有关问题,
  详细解决方案

sql查询语句有关问题,

热度:60   发布时间:2016-04-27 14:47:59.0
sql查询语句问题,在线等!
如何实现类似下面的查询
ID PID NAME
1 1 小王
2 3 小李
3 1 小赵
根据PID查询出唯一(用分组或唯一只能查询pid)我想查询所有的数据如下
ID PID NAME
1 1 小王
2 3 小李
也就是PID为1的就一个该怎么弄呢?希望大虾帮忙谢谢

------解决方案--------------------
SQL code
SELECT a.ID,a.PID,a.NAME FROM TB a JOIN (SELECT min(ID) IDFROM TBGROUP BY PID) b ONa.ID=b.IDORDER BY a.ID--这个不?
------解决方案--------------------
探讨
如何实现类似下面的查询
ID PID NAME
1 1 小王
2 3 小李
3 1 小赵
根据PID查询出唯一(用分组或唯一只能查询pid)我想查询所有的数据如下
ID PID NAME
1 1 小王
2 3 小李
也就是PID为1的就一个该怎么弄呢?希望大虾帮忙谢谢

------解决方案--------------------
SQL code
select ID, PID, NAME from (select ID, PID, NAME,row_number() over(partition by PID order by ID) rn from tb)where rn=1
------解决方案--------------------
SQL code
if OBJECT_ID('tb') is not null  drop table tb  go  create table tb (ID INT ,PID INT,NAME VARCHAR(50))INSERT INTO tb VALUES(1,1,'小王')INSERT INTO tb VALUES(2,3,'小李')INSERT INTO tb VALUES(3,1,'小赵')select ID,PID,NAME from (select *,rn=ROW_NUMBER()over(partition BY PID order by GETDATE()) from tb)t WHERE rn=1  ID          PID         NAME----------- ----------- --------------------------------------------------1           1           小王2           3           小李(2 行受影响)
  相关解决方案