Я использую MSSQL Server.У меня есть стол со столбиками: Id, State1, State2, State3, City1, City2, City3, Street1, Street2, Street3
.Где State1, City1, Street1 являются «тройными».Мне нужно выбрать все данные из таблицы, где (State1 = xyz, City1 = xyzv, Street1 = abcd) or (State2 = xyz....)
и показать это так: State1 as State/State2 as State
-> то же имя для каждого тройного столбца.Я должен сказать, что каждая тройка в строке является уникальной или нулевой.Таким образом, в строке может быть 1,2,3 уникальных адреса.
Как я могу это сделать?Теперь у меня есть что-то подобное, но есть
Msg 116, Уровень 16, Состояние 1, Строка 14 Только одно выражение может быть указано в списке выбора, когда подзапрос не введен с EXISTS.ошибка.
select ds.Data as Data,
case
when ds.Gmina1 = @StateName and ds.Miejscowosc1 = @CityName and ds.Street1 = @StreetName and ds.LocalNumber1 = @LocalNumber then (select ds.Gmina1 as Gmina, ds.Miejscowosc1 as Miasto, ds.Street1 as Ulica, ds.LocalNumber1 from Dostawy)
when ds.Gmina2 = @StateName and ds.Miejscowosc2 = @CityName and ds.Street2 = @StreetName and ds.LocalNumber2 = @LocalNumber then (select ds.Gmina2 as Gmina, ds.Miejscowosc2 as Miasto, ds.Street2 as Ulica, ds.LocalNumber2 from Dostawy)
when ds.Gmina2 = @StateName and ds.Miejscowosc3 = @CityName and ds.Street3 = @StreetName and ds.LocalNumber3 = @LocalNumber then (select ds.Gmina3 as Gmina, ds.Miejscowosc3 as Miasto, ds.Street3 as Ulica, ds.LocalNumber3 from Dostawy)
else null
end
from dbo.Dostawy as ds