Ввести пустую строку в запрос Sybase - PullRequest
1 голос
/ 22 сентября 2011

Мне нужно ввести фиктивную строку, если мой запрос 1 не может получить результат.

select column1,column2,... from <ActualTable> Where condition='abc'... (1)
Union
select "dummy col1","dummy col2"..... from <dummy table> where col1 NOT IN (select column1 from
<ActualTable> where condition = 'abc'..)                               (2)

С помощью вышеуказанного запроса, если запрос 1 получает результат, запрос 2 не будет.Если запрос 1 не дал результата, я бы получил пустую строку.

Есть ли другой способ добиться того же результата в Sybase?

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Temp таблица, если «ActualTable» дает> 1 строку

select column1,column2,... INTO #temp
from <ActualTable>
Where condition='abc'... (1)

IF @@ROWCOUNT = 0
    select "dummy col1","dummy col2"..... INTO #tmp
    from <dummy table>

-- #temp will exist now

INSERT #temp
select column1,column2,...
from <AnotherTable>
Where condition='abc'... (1)

IF @@ROWCOUNT = 0
    INSERT #temp
    select "dummy col1","dummy col2".....
    from <dummy table>

... 
SELECT * FROM #tmp
0 голосов
/ 22 сентября 2011

Попробуйте:

select top 1 * from
(
select 0,column1,column2,... from <ActualTable> Where condition='abc'... (1)
Union
select 1,"dummy col1","dummy col2"..... from <dummy table> 
order by 1
)

Если первый запрос успешен, вы получите его, если нет, тогда будет возвращен второй

...