2010-06-03 2 views
2

Я пытаюсь изменить хранимую процедуру, подключенную к инструменту ORM. Я хочу добавить еще несколько строк на основе цикла некоторых отдельных значений в столбце. Вот текущий SP:Зацикливание некоторых выбранных значений в хранимой процедуре

SELECT 
    GRP = STAT_CD, 
    CODE = REASN_CD 
FROM dbo.STATUS_TABLE WITH (NOLOCK) 
Order by STAT_CD, SRT_ORDR 

Для каждого отдельного STAT_CD, я бы также хотел бы вставить REASN_CD из «-» здесь в СП. Однако я хотел бы сделать это перед заказом, чтобы я мог дать им отрицательные порядки сортировки, чтобы они вошли в верхнюю часть списка.

Я сработал, как это реализовать. Кто-нибудь знает, как это сделать для каждого уникального STAT_CD?

ответ

1

Здесь вы идете:

SELECT GRP, CODE, SRT_ORDR FROM 
(
SELECT 
    GRP = STAT_CD, 
    CODE = REASN_CD, 
    SRT_ORDR 
FROM dbo.STATUS_TABLE WITH (NOLOCK) 
UNION 
SELECT DISTINCT STAT_CD, '--', -1 
FROM dbo.STATUS_TABLE WITH (NOLOCK) 
) RAW 
ORDER BY GRP, SRT_ORDR 

Обратите внимание, что вы не можете псевдоним первого столбца «Группа», так как это зарезервированное слово.

+0

Спасибо. Я изменил его на GRP выше. Это было действительно Group_Name, но для простоты я сократил его. Забыл, что это было зарезервированное слово. :) – macca1

+0

Это сработало отлично. Благодаря! – macca1

0

Это должно сделать это, хотя я не могу проверить это

select group=stat_cd, 
     code=reasn_cd 
     from 
(SELECT 
    2 as sortcol, 
    STAT_CD, 
    REASN_CD, 
    SRT_ORDER 
FROM dbo.STATUS_TABLE WITH (NOLOCK) 
union all 
select 
1 as sortcol, 
stat_cd ,'-',null 
from dbo.status_table with(nolock) 
group by stat_cd) as a 
Order by STAT_CD,sortcol, SRT_ORDER 
Смежные вопросы