Hi all,
I want to insert a values into a table, it should select even if the value is NULL and insert all the records. Below is my code, it should accept NUll values even with the other values. Please suggest me.
INSERT INTO Test (
SwitchID,
MilepostPrefix,
MilepostSuffix,
Milepost,
Latitude,
Longitude,
Elevation,
ClearingType,
FacingTrackName,
NormalReverseType,
NormalTrackName,
Description,
S_ID,
ClearanceName,
InsertUser
)
SELECT Distinct
B.SwitchID
,A.Prefix
,A.Suffix
,A.MP
,A.Latitude
,A.Longitude
,A.Elevation
,(Select ClearingType from #ClearingType WHERE ID =2)
,FacingTrackName = CASE WHEN A.FSEG IS NOT NULL THEN
A.FSEG
ELSE A.TrackName
END
,A.CLPDirection
,NormalTrackName = CASE WHEN A.NSEG IS NOT NULL THEN
A.NSEG
ELSE A.TrackName
END
,A.InputDescription
,C.ID
,CAST (b.Milepost AS VARCHAR) +'_'+a.CLPDirection
,@User
From AssetStaging A
INNER JOIN SSDB_Switch B
ON convert(decimal(10,3),A.CLPSwitchMP)=B.Milepost
INNER JOIN SSDB_SubdivisionRR C
ON A.SubdivisionName=C.SubdivisionName
INNER JOIN SSDB_SubdivisionRange AS E
ON C.SubdivisionID =E.SubdivisionID
WHERE C.ID= B.S_ID
AND (A.MP>=E.BeginMilepost AND A.MP<=E.EndMilepost)
--AND ISNULL(A.MP,0)>=E.BeginMilepost AND ISNULL(A.MP,0)<=E.EndMilepost
AND convert(decimal(10,3),A.CLPSwitchMP) NOT IN (SELECT CONVERT(decimal(10,3),A.CLPSwitchMP )
FROM AssetStaging A
WHERE A.CLPSwitchMP IS NOT NULL AND A.CLPDirection IS NOT NULL
GROUP BY A.CLPSwitchMP,A.CLPDirection,A.CLPSwitchName
HAVING COUNT(*) >1
)
AND (A.CLPSwitchName IN (Select SwitchName FROM SSDB_Switch X
WHERE X.Milepost =CONVERT(decimal(10,3),A.CLPSwitchMP ) )OR B.SwitchName IS NULL OR A.CLPSwitchName IS NULL )
AND (ISNULL(A.CLPSwitchName,0) =ISNULL(B.SwitchName,0) OR CLPSwitchName IS NULL)
AND (A.Latitude NOT IN (select Latitude from ssdb_clearancepoint
group by Latitude, Longitude, NormalReverseType))
AND (A.Longitude NOT IN (select Longitude from ssdb_clearancepoint
group by Latitude, Longitude, NormalReverseType))
Deepa