我有一種情況,我有一個包含兩個日期lke startdate和enddate 的表以及一個存在變量@offset的過程。TSQL CODE爲變量設置值
我需要編寫一個tsql代碼,用於在當前日期落入表中的開始日期和結束日期之間時將偏移值設置爲x。所以我必須檢查當前日期是否在表中的startdate和enddate之間,然後設置該值。如果沒有,我必須將偏移值設置爲y。我不得不在自己的程序中這樣做。
感謝您的幫助。
我有一種情況,我有一個包含兩個日期lke startdate和enddate 的表以及一個存在變量@offset的過程。TSQL CODE爲變量設置值
我需要編寫一個tsql代碼,用於在當前日期落入表中的開始日期和結束日期之間時將偏移值設置爲x。所以我必須檢查當前日期是否在表中的startdate和enddate之間,然後設置該值。如果沒有,我必須將偏移值設置爲y。我不得不在自己的程序中這樣做。
感謝您的幫助。
SET @offset = CASE WHEN GETDATE() BETWEEN @StartDate AND @EndDate THEN x ELSE y END
也許試試這個。
DECLARE @OffsetTable (placeholder INT)
INSERT INTO @OffsetTable
SELECT 1
FROM Table
WHERE GETDATE() BETWEEN StartDate AND EndDate
if (@@rowcount > 0)
SET @offset = x
ELSE SET @offset = y
試試這個:
DECLARE @I Int;
DECLARE @Start Int =0;
DECLARE @End Int=0;
Set @I = Select Count(*) From YourTable;
While @I > 0
Begin
IF (GetDate() > select StartDate from yourTable where [email protected])
Set @Start = @Start + 1;
IF (GetDate() < select EndDate from yourTable where [email protected])
Set @End = @End + 1;
Set @I = @I -1;
End;
Set @I = Select Count(*) From YourTable;
If (@Satr = I) And (@End = I)
Set @Offset = X
Else Set @Offset = Y;
注:沒有測試。
我試圖寫一個case語句,但我無法從整個表中檢查當前日期。 – kris
'Set @offset = Value' – Sami
這聽起來像你還在想像一個非sql程序員。什麼是你必須做的 - 它可以在不使用IF語句的情況下在sql中完成。記住在SQL中你想使用set而不是單個值。 – Hogan