如何基于表格现有数据新增数据列
现有一个数据表的数据像这样:
.png)
我们的需求是基于表中的Item列新增一个status字段,如果item的内容是第一次出现,那么status列就是New,反之显示Old,
比如,应该是下面的显示内容
.png)
在原文章的回复中, Robert Cemper给出了下面的建议
新建一个存储过程,并在SELECT查询语句中生效:
/// Return NEW for first occurance of item /// otherwise return OLDClass User.ItemStat Extends%RegisteredObject
{
ClassMethod NewOld(item As%String = "") As%String [ SqlProc ]
{
if item=""quit"?"if$d(^||list(item)) quit"OLD"if$i(^||list(item)) quit"NEW"
}
}使用下面SELECT语句使之生效:
SELECT *, ItemStat_NewOld(item) asStatusFROM items orderby2结果如下:
ID date item Status
109/13/1932 A NEW204/06/1933DNEW1006/15/1940 A OLD
411/26/1940 A OLD
602/19/1956 B NEW804/22/1957D OLD
705/01/1959D OLD
906/29/1961 ?
307/04/1992 B OLD
512/08/2020D OLD