一种sqlor的拆分

原脚本
declare @Phone nvarchar(50)
declare @CompanyNO nvarchar(50)
set @Phone='13914124223'
set @CompanyNO='51086910661'
select count(1) from TWEB_ALogisticsYD bb
LEFT JOIN dbo.TWEB_BCompanyJJ as B3 WITH(NOLOCK) ON B3.CompanyNo=bb.Col_117
where bb.Col_062 is not null and Col_049 is not null and (
(( bb.Col_043=@CompanyNO or (bb.Col_117=@CompanyNO and bb.Col_117<>Col_043 and bb.Col_117<>isnull(bb.Col_051,''))) AND bb.COL_117 NOT IN ( N'57378369305', N'02850617763', N'75772902711' ))
or (bb.Col_045=@Phone or bb.Col_092=@Phone)
) and (B3.LoadFlag IS NULL OR B3.LoadFlag=0)


新脚本
DECLARE @Phone NVARCHAR(50);
DECLARE @CompanyNO NVARCHAR(50);
SET @Phone = '13914124223';
SET @CompanyNO = '51086910661';
SELECT COUNT(1) FROM (
SELECT bb.Col_003,bb.Col_117
FROM TWEB_ALogisticsYD bb
WHERE bb.Col_062 IS NOT NULL AND Col_049 IS NOT NULL
AND (
(bb.Col_043 = @CompanyNO OR (bb.Col_117 = @CompanyNO AND bb.Col_117 <> Col_043 AND bb.Col_117 <> ISNULL(bb.Col_051, '')))
AND bb.Col_117 NOT IN (N'57378369305', N'02850617763', N'75772902711')
)

UNION

SELECT bb.Col_003,bb.Col_117
FROM TWEB_ALogisticsYD bb
WHERE bb.Col_062 IS NOT NULL AND Col_049 IS NOT NULL AND (bb.Col_045 = @Phone OR bb.Col_092 = @Phone)
) AS t
LEFT JOIN dbo.TWEB_BCompanyJJ AS B3 WITH ( NOLOCK ) ON B3.CompanyNo = t.Col_117
where B3.LoadFlag IS NULL OR B3.LoadFlag = 0

原文地址:https://www.cnblogs.com/muxueyuan/p/8124544.html