python编码、创建和SQli

2024-04-25 01:30:33 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个每个月都有月份( Jan, Feb, March,.... as variable and 5 levels(d0 to d4)的文件 如果我连续两个月有任何d2级别,或者一年中任何月份有任何d3或d4级别,我想创建一个名为impacted的新列。 我想对SQLite也这样做

例如

jan...feb, mars April....nov  dec     impacted
0      d2  d2    0       0     0       yes
0      0    0    d3      0     0       yes
0      0    0     0      0     0       no
d4     0    0     0      0     0       yes
0      d2   0     0      0     0       no
d1     d0   d1    d0     d0    d1      no

Tags: noas级别variablejanfebyesd2
1条回答
网友
1楼 · 发布于 2024-04-25 01:30:33

如果需要SQLite的SQL代码,请使用CTE和运算符LIKE

with cte as (
  select *,
    ',' || jan ||',' || feb ||',' || mar ||',' || apr ||',' || may ||',' || jun ||
    ',' || jul ||',' || aug ||',' || sep ||',' || oct ||',' || nov ||',' || dec ||',' months
  from tablename
)
select jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec,
  case when (months like '%,d2,d2,%') or (months like '%,d3,%') or (months like '%,d4,%') then 'yes' else 'no' end impacted
from cte

如果(与示例数据一样)表中没有任何NULL,则此代码可以工作。如果有,则必须使用coalesce()。你知道吗

相关问题 更多 >