根据现有列派生其他列
Derive additional columns based on existing column
我有 10 列的 500 条记录。基于日期列,我想创建两个额外的列 (date_id, record_id)
。日期列是唯一的。
Date_id 列值应为:F + date + unique identifier
.
Record_id 列值应为:C + date + unique identifier
.
例如:
Date
15Jul2017
预期输出:
Date date_id record_id
--------------- -------------------------- --------------
15Jul2017 F+15Jul2017+1 C+15Jul2017+1
15Jul2017 F+15Jul2017+2 C+15Jul2017+2
...so on until 500 records
15Jul2017 F+15Jul2017+500 C+15Jul2017+500
您可以使用 row_number()
:
select t.date,
('F+' || date || '+' || row_number() over (order by date)) as date_id,
('c+' || date || '+' || row_number() over (order by date)) as record_id
from t;
如果您的日期确实存储为日期而不是字符串,那么您可能需要将其格式化为您喜欢的格式。
我有 10 列的 500 条记录。基于日期列,我想创建两个额外的列 (date_id, record_id)
。日期列是唯一的。
Date_id 列值应为:
F + date + unique identifier
.Record_id 列值应为:
C + date + unique identifier
.
例如:
Date
15Jul2017
预期输出:
Date date_id record_id
--------------- -------------------------- --------------
15Jul2017 F+15Jul2017+1 C+15Jul2017+1
15Jul2017 F+15Jul2017+2 C+15Jul2017+2
...so on until 500 records
15Jul2017 F+15Jul2017+500 C+15Jul2017+500
您可以使用 row_number()
:
select t.date,
('F+' || date || '+' || row_number() over (order by date)) as date_id,
('c+' || date || '+' || row_number() over (order by date)) as record_id
from t;
如果您的日期确实存储为日期而不是字符串,那么您可能需要将其格式化为您喜欢的格式。