2016-08-11 3 views
0

Мне нужно объединить два столбца в SQL Server. Однако мне нужно указать один столбец.Выберите один из двух столбцов на основе приоритета

Make | Model  | Segment make | Segment model 
--------+------------+--------------+-------------- 
Ferarri | California | Sport  | Null 
Ferarri | F40  | Sport  | Null 
Porsche | 911  | Sport  | Null 
Porsche | Cayenne | Sport  | SUV 
BMW  | M5   | Null   | Sport 

Мне нужен стол со всеми моделями и сегментом каждого автомобиля. Все модели имеют сегмент в одном из двух столбцов с сегментом. И, если в обоих столбцах есть сегмент, мне бы понравился сегмент для модели, чтобы переопределить сегмент для make, как в примере с Porsche. Это результат мне нужно:

Make | Model  | Segment 
--------+------------+-------- 
Ferarri | California | Sport 
Ferarri | F40  | Sport  
Porsche | 911  | Sport  
Porsche | Cayenne | SUV 
BMW  | M5   | Sport 

Я искал и нашел ранг(), но это, кажется, не делать то, что я хочу. Какие-либо предложения?

Заранее спасибо

ответ

3

использования coalesce(). Она возвращает его первый не-NULL параметр:

select, Make, Model, coalesce(Segmentmodel, Segmentmake) as segment 
from tablename 
0

Я бы рекомендовал что-то вроде

select isnull(model,make) as segment 

Потому что тогда вы всегда будете выбрать модель, если модель не является пустым. В этом случае он выберет make.

0

Try:

Select Make,Model,Coalesce([Segment model], [Segment make]) Segment From YourTable 
Смежные вопросы