0

我在我的项目中使用存储过程。所以我对使用!=(not null)有疑问。

ALTER PROCEDURE [dbo].[SP_CEP_TELEFONU_NUMARA_LISTESI_GETIR]

AS
BEGIN

SELECT dbo.MUSTERILER_YETKILI.MUSTERILER_ID,MUSTERILER_YETKILI_CEP_TEL 
FROM MUSTERILER_YETKILI 

INNER JOIN MUSTERILER on dbo.MUSTERILER_YETKILI.MUSTERILER_ID=dbo.MUSTERILER.MUSTERILER_ID
AND
dbo.MUSTERILER.MUSTERI_DURUMU=1

ORDER BY MUSTERILER_YETKILI_CEP_TEL
END

如果不是 null,我想选择数据。

4

1 回答 1

1

我重写你的SP:

更改程序 [dbo].[SP_CEP_TELEFONU_NUMARA_LISTESI_GETIR]
作为
开始
  选择 dbo.MUSTERILER_YETKILI.MUSTERILER_ID,MUSTERILER_YETKILI_CEP_TEL
  FROM MUSTERILER_YETKILI y
  内连接 MUSTERILE m
    在 y.MUSTERILER_ID=m.MUSTERILER_ID
  其中 m.MUSTERI_DURUMU=1
  AND columnnotnullable IS NOT NULL
  由 MUSTERILER_YETKILI_CEP_TEL 订购
结尾

亲爱的,我已经更改了您的内部连接条件,因为 m.MUSTERI_DURUMU = 1 不是链接两个表,而是一个过滤条件(您可以在 INNER JOIN 子句中使用它,但是如果您使用 OUTER,如果您设置条件,结果会发生变化在 WHERE 或 ON 子句中)

我已经添加

AND columnnotnullable IS NOT NULL
. 此条件过滤考虑列值(非空)的结果,请明确您想要将哪个列名视为非空。

最后,我给你的表取了别名(m 和 y),而不是重复你的表的完整名称,你可以使用别名,这样你的查询就更具可读性。

于 2013-10-04T14:56:40.473 回答