SQL Server - 有条件地删除字段

时间:2018-01-21 03:22:59

标签: sql-server

我检查了这两个:

Delete part of a field in SQL

Deleting part of a string in MYSQL

但他们并非完全我需要的东西。

我遗憾地继承了一个表格,其中的字段中包含逗号分隔的字符串,不考虑格式或顺序。它很丑。现在我需要摆脱字符串的特定部分:

所以,假设我有一张桌子:

    Column1   Column2
    1         XRR01,MMEX1,XFR44
    2         XRR02,MMEX1
    3         MMEX1,GH345,XFR45,CFA34
    4         NMM22,MMEX1,XFR44
    5         MMEX1
    6         XFR55

我想UPDATE MMEX1Column2字段中查找并删除 Column1 Column2 1 XRR01,XFR44 2 XRR02 3 GH345,XFR45,CFA34 4 NMM22,XFR44 5 NULL (or blank, doesn't really matter) 6 XFR55 的所有实例,并保持其他部分不变。

那么我将留下:

from scipy import stats
df['D']=stats.mode(df.values,1)[1]
df
Out[829]: 
   A  B  C  D
0  1  1  2  2
1  2  1  2  2
2  3  3  3  3
3  3  2  1  1

这可能吗?

1 个答案:

答案 0 :(得分:1)

以下是使用Options函数

的一种方法
Replace

select replace(replace(Column2,',MMEX1',''),'MMEX1,','') from Yourtable 将删除中间和最后一个字符串 replace(Column2,',MMEX1','')将在开头删除字符串

注意:在数据处理中,在列中存储逗号分隔值始终是一件痛苦的事。尝试并更改表结构