SQL SELECT查询问题

时间:2016-03-18 21:04:16

标签: sql select

我的SELECT查询存在问题。我试图找到不以“50700”开头并且启用标志为1的项目属于类别4和子类别4.以下是我的查询但是当我知道有一些时它没有返回任何结果。请注意TBL1.FIELD1 = ITM_ID,TBL1.FIELD2 = ENABLED,TBL2.FIELD1 = CAT_ID,TBL2.FIELD2 = SUBCAT_ID。

SELECT DB_NAME.dbo.TBL1.FIELD1 
 , DB_NAME.dbo.TBL1.FIELD2 
 , DB_NAME.dbo.TBL2.FIELD1 
 , DB_NAME.dbo.TBL2.FIELD2
FROM DB_NAME.dbo.TBL1 
   , DB_NAME.dbo.TBL2
WHERE DB_NAME.dbo.TBL1.FIELD1 NOT LIKE '50700%' 
  AND DB_NAME.dbo.TBL1.FIELD2 = 1 
  AND DB_NAME.dbo.TBL2.FIELD1 = 4 
  AND DB_NAME.dbo.TBL2.FIELD2 = 4

1 个答案:

答案 0 :(得分:0)

您可以将查询分解为不同的子查询以进行调试,这样您就可以确定哪个“AND”条件不起作用。

例如: 首先,我猜你应该用简单的查询在TBL1.FIELD1上尝试一个简单的查询:

select TBL1.FIELD1 from DB_NAME.dbo.TBL1 where DB_NAME.dbo.TBL1.FIELD1  NOT LIKE '50700' ;(*if TBL1.FIELD1 is of String type, else go for TBL1.FIELD1 != 50700 * )

然后,如果您得到结果,请尝试使用TBL1.FIELD2条件进行“与”。

select TBL1.FIELD1 
from DB_NAME.dbo.TBL1
where DB_NAME.dbo.TBL1.FIELD1 NOT LIKE '50700' 
and DB_NAME.dbo.TBL1.FIELD2 =4 ;

这样您可以继续进行并调试查询。希望它有所帮助:)