PDA

View Full Version : مقایسه فیلدی که ممکن است NULL باشد!!



Naghibi
یک شنبه 05 شهریور 1391, 12:43 عصر
با سلام
من توی جدولم فیلدهایی دارم که مشخص می کنه یک فرد از چه تاریخی تا چه تاریخی چه وضعیتی داره، فیلد دوم تاریخ یعنی تاریخ پایان میتونه NULL باشه. به این معنی که وضعیت مشخص شده تا حالا ادامه داره.
حالا میخوام یک query بنویسم که وضعیت کارمند در یک تاریخ را مشخص کند. وقتی دو تاریخ مقدار دارن مشکلی نیست اما وقتی تاریخ پایان NULL باشه مقداری برنمی گرده!!

لطفا منو راهنمایی کنین

fakhravari
یک شنبه 05 شهریور 1391, 12:54 عصر
فیلد که نباید خالی باشه در جستجو نمیاد. میتونید برای اوردنش از is null استفاده کنید
SELECT * FROM someTable WHERE thisDateTime IS NOT NULL

Naghibi
یک شنبه 05 شهریور 1391, 13:06 عصر
من از این حالت چه جوری تو شرط where استفاده کنم؟ کدی که من نوشتم:
select State from HistoryState
where pID=@pid and @Statedate between startDate and finishDate

rahgozare_abi
یک شنبه 05 شهریور 1391, 22:56 عصر
من از این حالت چه جوری تو شرط where استفاده کنم؟ کدی که من نوشتم:
select State from HistoryState
where pID=@pid and @Statedate between startDate and finishDate



SELECT [State]
FROM HistoryState
WHERE pID=@pid
And ( (@Statedate between startDate and finishDate)
OR (@Statedate > startDate And finishDate is null)
)

یا


SELECT [State]
FROM HistoryState
WHERE pID=@pid
And @Statedate between startDate and IsNull(finishDate,GETDATE())