2015-10-15 3 views
-1

Привет всем Мне было интересно, возможно ли создать новый столбец в запросе SELECT?SQL QUERY-create column в этом запросе

В настоящее время у меня есть запрос, который извлекает данные для номеров деталей, их номер несущей, их состояние несущей и конечное использование для них. Я хочу добавить еще один столбец в запросе, назовите его «приемлемость» и значения будет

  • «C», если конечное использование этой части = сертификации и она существует в этой другой таблицы в базе данных. Итак, если конечное использование части является сертификатом, и оно существует в этой другой таблице (называемой специальными программами), это будет «C» в этом новом поле
  • в противном случае это было бы пусто. Это возможно?

ЗЕЬЕСТ:

Select distinct 
    pn.PNumber, 
    ht.CarrierID AS 'Carrier Number', 
    chs.CarrierDescriptionText AS 'Carrier State', 
    ct.EndUsedName AS 'End Use' 

Результаты пример:

enter image description here

+2

Посмотрите на [ 'СЛУЧАЙ ... WHEN'] (https://msdn.microsoft.com/en-us/library/ms181765 (v = sql.120) .aspx) и ['EXISTS'] (https://msdn.microsoft.com/en-us/library/ms188336 (v = sql.120) .aspx). –

+1

Одиночные кавычки предназначены для строковых литералов, используйте двойные кавычки для идентификаторов (например, «Номер несущей».) – jarlh

+0

@ X.L.Ant, но это создаст дополнительный столбец? –

ответ

0

Общий код воздуха. LEFT JOIN связывает вашу_таблицу с другой_таблицей, а в блоке CASE - ot. ?? если эта связанная строка существует в другой таблице. Измените свою_таблицу, другую_таблицу и? в соответствии с вашей ситуацией.

Select distinct 
 
    pn.PNumber, 
 
    ht.CarrierID AS 'Carrier Number', 
 
    chs.CarrierDescriptionText AS 'Carrier State', 
 
    ct.EndUsedName AS 'End Use', 
 
    CASE WHEN [End Use] = 'Certification' AND ot.?? IS NOT NULL THEN 'C' ELSE '' END as eligibility 
 
FROM your_table yt 
 
    LEFT JOIN other_table ot ON yt.?? = ot.??

+0

omg это отлично работает! один последний вопрос, если вы не возражаете, так или иначе, я могу ссылаться на всю таблицу, например ot. *, потому что это не позволит мне это делать, когда я меняю его –

+0

@eto_donna Если этот ответ сработал для вас, отметьте его как принятый. – Siyual

+0

«Я могу ссылаться на всю таблицу как ot.» «Да, но это не сработает, если yt и ot имеют столбцы с точно таким же именем. Если это так, вам придется печатать все столбцы. –