我正在尝试修改连接到ORM工具的存储过程。我想根据列中某些不同值的循环添加更多行。这是当前的SP:
SELECT
GRP = STAT_CD,
CODE = REASN_CD
FROM dbo.STATUS_TABLE WITH (NOLOCK)
Order by STAT_CD, SRT_ORDR
对于每个不同的STAT_CD,我还想在SP中插入REASN_CD“ - ”。但是我想在订单之前这样做,所以我可以给他们负排序顺序,所以他们进入列表的顶部。
我正在惹恼如何实现这一点。有没有人知道如何为每个独特的STAT_CD做这个?
答案 0 :(得分: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
请注意,您不能将第一列“Group”别名,因为这是一个保留字。
答案 1 :(得分: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