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行。