SQL Server:从x中选择*其中(a,b)in(从z中选择a,b)

时间:2014-04-29 18:25:52

标签: sql-server where where-clause

这在SQL Server中不起作用:

SELECT ID, SQNCNO
FROM JUID AS MID
WHERE 
     (ID, SQNCNO) IN (SELECT NM.ID, NM.SQNCNO
                      FROM JUNM AS NM
                      WHERE (LAST_NAME LIKE 'TESTCASE%')) 
ORDER BY ID, SQNCNO

它适用于DB2和Oracle。问题是WHERE (ID, SQNCNO)。谁能告诉我如何在SQL Server中使这个SQL工作?

2 个答案:

答案 0 :(得分:1)

Exists是以这种方式创建的

SELECT ID, SQNCNO
FROM JUID AS MID
WHERE Exists(SELECT 1 FROM JUNM AS NM
                      WHERE 
                          NM.ID = MID.ID 
                          and NM.SQNCNO = MID.SQNCNO 
                          and (LAST_NAME LIKE 'TESTCASE%')) 
ORDER BY ID, SQNCNO

答案 1 :(得分:-1)

在SQL Server中,您必须创建两个子查询

SELECT ID, SQNCNO
  FROM JUID AS MID
  WHERE (ID IN (SELECT NM.ID
                   FROM JUNM AS NM
                   WHERE (LAST_NAME LIKE 'TESTCASE%')) 
OR -- AND?
SQNCNO IN (SELECT NM.SQNCNO
                   FROM JUNM AS NM
                   WHERE (LAST_NAME LIKE 'TESTCASE%')) 
  ORDER BY ID, SQNCNO