РЕДАКТИРОВАТЬ: Дэмиен неверующий, мои извинения, пытаясь быть кратким, я пропустил, говоря, что дизайн таблицы не под моим контролем; эта таблица представляет собой «дамп» данных, которые мы получаем от другого поставщика, и мне нужно преобразовать их из нашего формата в наш. Причина, по которой мне нужен запрос, состоит в том, чтобы выяснить, соответствуют ли данные предположениям в других частях кода. Предлагаемые решения для поиска длины или точного соответствия объединенных строк лучше, чем моя пара запросов для описанной мной проблемы.
У меня есть рабочая пара запросов для моей проблемы, но мне было интересно, есть ли что-то более красивое. Точно один из taxidflag1
, taxidflag2
, taxidflag3
должен быть заполнен *
в каждом ряду. Поэтому я подтверждаю, что у них у всех два бланка и один *
, как это. Все поля не обнуляются.
select * from acct where 2 <>
(case when taxidFlag1 <> '' then 1 else 0 end) +
(case when taxidFlag2 <> '' then 1 else 0 end) +
(case when taxidFlag3 <> '' then 1 else 0 end)
select * from acct where 1 <>
(case when taxidFlag1 = '*' then 1 else 0 end) +
(case when taxidFlag2 = '*' then 1 else 0 end) +
(case when taxidFlag3 = '*' then 1 else 0 end)