Sql server 2008 将SQL转换为Sybase方言

Sql server 2008 将SQL转换为Sybase方言,sql-server-2008,sybase,Sql Server 2008,Sybase,问题是 Select id from TableA where typ_cd="NT" and id not in ( select id from TableA where typ_cd="BB") 我需要找到类型为\u cd=“NT”的id,并将这些id与类型为\u cd=“BB”的表中不存在的相同id进行比较。我很困惑为什么上面的查询没有返回正确的值 编辑:-我正在引用同一个表,列ID没有空值 请告诉我如何在sql server中实现相同的结果,以便我可以尝试在sybase中编写等效

问题是

Select id from TableA 
where typ_cd="NT"
 and id not in
( select id from TableA where typ_cd="BB")
我需要找到类型为\u cd=“NT”的id,并将这些id与类型为\u cd=“BB”的表中不存在的相同id进行比较。我很困惑为什么上面的查询没有返回正确的值

编辑:-我正在引用同一个表,列ID没有空值

请告诉我如何在sql server中实现相同的结果,以便我可以尝试在sybase中编写等效的查询

 TableA

id typ_cd
 1   NT
 1   BB
 3   NT
 4   NT
 4   BB
我需要id=1作为
结果
,因为id=1存在于typ_cd=NT,但不存在于typ_cd=BB
但是目前,在sybase中,通过上面的查询,我得到了空值

将双引号替换为单引号

 TableA

id typ_cd
 1   NT
 1   BB
 3   NT
 4   NT
 4   BB
Select id from TableA 
where typ_cd='NT'
 and id not in
( select id from TableA where typ_cd='BB')

我发布的查询是针对Sybase的。它适用于双引号和单引号,但不幸的是,它没有在Sybase中返回正确的行。这是您得到的示例还是您想要的?你能确定两者都在问题中吗。您还可以告诉我们两个数据库中表的数据和结构是否相同。有空值等吗?@PreetSangha:我错了。上面显示的查询是正确的,甚至是空值。只是对于所有类型为\u cd=NT的行,都有匹配类型为\u cd=BB的行,但不是相反。根据数据,应该只有3行,而不是1行。