Я был в шоке от этой простой проблемы, посланной мне коллегой.Синтаксис для нескольких операторов CASE и функций ISNULL() в запросе
Хотя я понимаю, что он пытается сделать с логической точки зрения, я застрял на синтаксисе. Меня это очень беспокоит. Я не нашел ничего подобного в любой документации, которую я прочитал. Ниже его сообщение с наиболее релевантной кусок кода:
Эй (TRose), здесь жесткий, чтобы думать о. Это mssql-запрос, и у меня есть , в настоящее время скрывающие «неактивные» стороны, когда я выбираю его как параметр , но я забыл «отклонить» и вам нужно добавить его в оператор в , действуя так же, как «неактивный», :
SELECT
CaseName = justice.dbo.fnFormatFullNameFMLSByNameID(cp.nameid),
CurrentKnownName = justice.dbo.fnFormatFullNameFMLSByPartyID(cp.partyid),
CasePartyAtty = justice.dbo.fnCasePartyLeadAttorney(cp.caseid,cp.partyid),
cpc.casepartyconnid,
PartyActive = (select top 1 case isnull(inactive ,0)
when 0 then 'YES'
else 'NO'
end
from justice.dbo.CasePartyConnStat cps
where cps.CasePartyConnID = cpc.CasePartyConnID
order by cps.CasePartyConnStatID desc)
FROM justice.dbo.ClkCaseHdr ct
when 'OP' then '53OP'
when 'PA' then '53PA'
join justice.dbo.CaseAssignHist cah on cah.CaseAssignmentHistoryID = ct.CaseAssignmentHistoryIDCur
join justice.dbo.CaseParty cp on cp.caseid = ct.caseid
join justice.dbo.CasePartyConn cpc on cpc.CasePartyId = cp.casePartyid
and BaseConnKy not in ('AT')
WHERE ct.caseid = @CaseID
Я приличная на SQL, но я просто не знаю ответа на этот вопрос. SQLFiddle не помогает, потому что у меня нет доступной информации о схеме. Это строго синтаксис.
Любая помощь, которую я могу получить, оценивается.
Eww. Не используйте «Top 1», как это. Извлеките подзапрос из вашего выбора и выполните соединение правильно. На самом деле схема здесь нужна, чтобы лучше понять вопрос ... но я думаю, что если вы сделаете соединение правильно, вы сможете разместить столько «случаев, когда», сколько хотите. –
Есть ли что-то отсутствующее в «когда» OP, затем «53OP» , когда «PA» затем «-part? Это недействительно. SQL –
@NWest это способ, которым он был отправлен мне. Работая в местах со старым кодом, вы обязательно увидите некоторые плохие вещи. Мне не нужно радикально менять его, просто помогите ему сработать. Я согласен с тобой. – TRose