Member 12678237 Ответов: 1

Поиск с помощью оператора case


У меня есть проблема с i.здесь, в @activeInd, мне действительно нужно это, чтобы вытащить Y/N из "StatusOf", если это имеет смысл, я уверен, что это что-то простое. Но я не знаю, как этого добиться.

DECLARE @activeInd char(1)
SET @activeInd = ''

SELECT  m.number as NAMENO, m.first as FIRSTNAME, m.last as LASTNAME, m.middle as MIDNAME, m.birthd as PERAGE, m.sex as SEX, b.intdate as BOOKDT, 

   case
        when i.curbook  > '0' then 'N'
        when i.curbook  < '0' then 'Y'
        else 'UNDEFINED'
    end AS StausOf

FROM DB.dbo.nmmain m, DB.dbo.jlinmate i, DB.dbo.jlbook b


WHERE b.intdate = (SELECT MAX(b2.intdate)
			   FROM DB.dbo.jlbook b2
			   WHERE m.number = i.namenum)  
			   
AND m.first LIKE @firstName + '%'
AND m.last LIKE @lastName + '%'
AND i.here IN ('Y', @activeInd)
AND (@fromDate IS NULL
OR b.intdate BETWEEN @fromDate AND @toDate)
ORDER BY m.last, m.first, m.middle, m.birthd, i.curbook


Что я уже пробовал:

У меня есть проблема с i.здесь, в @activeInd, мне действительно нужно это, чтобы вытащить Y/N из "StatusOf", если это имеет смысл, я уверен, что это что-то простое. Но я не знаю, как этого добиться.

1 Ответов

Рейтинг:
2

RossMW

Цитата:
И я.здесь, в ('Y', @activeInd)


Если я правильно понял ваш вопрос, вам нужно будет заменить "Y" на ваше заявление о случае.

Кроме того, ваш оператор case сравнивает a < и > со строкой, а не с числом. Не знаю точно, почему или что вы пытаетесь здесь сделать.


Member 12678237

RossMW,

Я попытаюсь объяснить это немного лучше. Это для веб-сайта, и в основном текущее "AND i.here IN ('Y', @activeInd)" - это то, что я хочу заменить чем-то вроде приведенного ниже и StatusOf IN ('Y', @activeInd)"

Я хочу иметь возможность использовать StatusOf, который не является полем в базе данных, чтобы я мог искать активные и неактивные элементы. В единственной базе данных, которая у нас была, у меня было поле для StatusOf, чтобы я мог легко искать с помощью Y/N против этого поставщика программного обеспечения, у меня больше нет такой опции, поэтому я надеюсь, что смогу каким-то образом использовать приведенный выше случай, то есть ту часть, которую я не уверен, как это сделать, если это имеет лучший смысл?