2014-12-23 2 views
0

Я пытаюсь собрать информацию из таблицы на SQL Server, в которой у меня только есть доступ на чтение.Условные утверждения в SQL Server с доступом только для чтения

Я думаю, что лучший способ объяснить, что я хочу сделать, - показать, что я пытался сделать.

USE eMOS2 
IF (OPERATION.CLOSE_DATE WHERE WORKORDER_BASE_ID='73691' IS NULL) 
    THEN 
     SELECT 
      SHED_START_DATE, 
      SHED_FINISH_DATE 
     FROM OPERATIONS  
     WHERE WORKORDER_BASE_ID='73691' 
    ELSE 
     SELECT 
      SHED_START_DATE, 
      CLOSE_DATE 
     FROM OPERATIONS  
     WHERE WORKORDER_BASE_ID='73691' 

К сожалению, это не сработает. Я не сомневаюсь, что мой синтаксис неверен. Я пробовал пару разных форматов, однако проблема заключается в том, что мой доступ доступен только для чтения. Есть ли способ обойти это?

+2

У вас есть ошибка? Что значит «не работает»? – Mike

+2

@Mike, который содержит синтаксические ошибки, вам не нужно запускать его, чтобы увидеть, что он даже не работает. –

+1

@SeanLange - согласился и отметил, просто хотел, чтобы OP немного расширился на своем посту/«покажите свою работу» :-) Надеюсь, мой ответ ниже отсортирует их для них – Mike

ответ

4
select shed_startdate, isnull(close_date,shed_finish_date) 
from operations 
where workorder_base_id = '73691' 
+0

Спасибо, Майк, это сработало отлично. – mreff555

1

Вы можете использовать ISNULL или COALESCE. COALESCE, вероятно, лучше, потому что это стандартный sql.

SELECT 
    SHED_START_DATE, 
    COALESCE(CLOSE_DATE,SHED_FINISH_DATE) AS CLOSE_DATE 
FROM OPERATIONS  
WHERE WORKORDER_BASE_ID='73691' 
Смежные вопросы