У меня есть хранимая процедура, которая извлекает данные из 2 отличаются на 2 разных серверах следующим образом:SQL IF в хранимой процедуре
SELECT
LocalDB.Record_ID,
LocalDB.Total/1440 as TotalTime,
((REMOTE_ACTIVE.Time_Adjusted) - (REMOTE_ACTIVETimes.CALCTimeSec)) as TimeLeft,
LocalDB.isManualEntry
FROM LocalDatabase.dbo.Records LocalDB left join
[RemoteServer].[Reporting].[dbo].[ActiveWO] REMOTE_ACTIVE ON
LocalDB.WO_ID = REMOTE_ACTIVE.[PO_ID]
left join [RemoteServer].[Reporting].[dbo].[ActiveWOTimes] REMOTE_ACTIVETimes ON
LocalDB.WO_ID = REMOTE_ACTIVETimes.[PO_ID]
Что может случиться, что иногда значение «TimeLeft» может быть 0. Когда это случается, что я хочу, чтобы заменить это значение с чем-то вроде
IF(TimeLeft is 0 or null)
(getdate() - LocalDB.CreatedDate) as TimeElapsed
дело в том, что я не знаю, как реализовать такое заявление IF или, если это вообще возможно.
вы можете использовать регистр case в sql serve r. Пожалуйста, обратитесь к http://stackoverflow.com/questions/5487892/sql-server-case-when-or-then-else-end-the-or-is-not-supported – Pawan
Спасибо, но это не показывает полный синтаксис, например, куда идет CASE. –