我正在尝试编写一个sql语句,它将从我解析出来的子字符串中获取值,然后以某种方式对它们进行排序,以反映我在屏幕前端看到的内容。我这么做还有一个更长远的原因,那就是有些脚本会自动把我在电子表格中的数据输入到程序的前端,但它们必须以程序可以读取的方式设置。。。长话短说,其中一个涉及到一个“pick”列,它使用该列来确定在按“enter”之前将发出的“tab”的数量
长话短说,我的数据是这样的
SubStr(CONCATField, 1, 4) SubStr(CONCATField, 5, 5) SubStr(CONCATField, 6, 4) EffectiveDate ENDDATE
我按 EffectiveDate Descending
.
假设我有以下查询中的数据
SELECT
SubStr(CONCATField, 1, 4),
SubStr(CONCATField, 5, 5),
SubStr(CONCATField, 6, 4),
EffectiveDate, ENDDATE
FROM
TABLE
WHERE
XXXXX
ORDER BY
SELECT
SubStr(CONCATField, 1, 4),
SubStr(CONCATField, 5, 5),
SubStr(CONCATField, 6, 4),
EffectiveDate DESC, ENDDATE DESC
输出:
FCCC T1234 P123 20190101 99991231
FCCC T1234 P123 20160101 20181231
FCCC T1234 P123 20150101 20151231
FCCC T1234 P456 20190101 99991231
FCCC T1234 P456 20160101 20181231
FCCC T1234 P456 20150101 20151231
我想添加一个名为pick的列,它将按如下方式排列组的编号。
substr(concatfield,1,4)substr(concatfield,5,5)substr(concatfield,6,4)
EffectiveDate ENDDATE
FCCC T12345 P123 20190101 99991231 1
FCCC T12345 P123 20160101 20181231 2
FCCC T12345 P123 20150101 20151231 3
FCCC T12345 P456 20190101 99991231 1
FCCC T12345 P456 20160101 20181231 2
FCCC T12345 P456 20150101 20151231 3
思想?
1条答案
按热度按时间ruyhziif1#
你好像在找
row_number()
:可以将子字符串简化为
substr(CONCATfield, 1, 13)
,如果你愿意的话。