sqlite - SQLite 仅将数字或字母从一列复制到另一列
问题描述
我在 SQLite 表中有一些数据,例如
111222_abc
def_333444
556789_hij
123456XY
789123ZZB
我想要的是一对只有数字和字母的列,例如:
Col 1 Col 2
111222 abc
333444 def
556789 hij
123456 XY
789123 ZZB
尝试了 REGEX 选择,但它似乎不起作用,结果我只得到“1”或“0”。真假?
解决方案
好的,经过大量谷歌搜索等后,我最终使用 Python 来解决这个问题:con 是一个 sqlite 连接。
with con:
cur = con.cursor()
cur.execute('SELECT * FROM Table')
rows = cur.fetchall()
n=1
for row in rows:
# print (row)
ID_Init=row[1]
ID_Check=row[2]
if ID_Init:
temp=""
ID_Base=re.findall(r'\d{6}',ID_Init)
temp=''.join(ID_Base)
ID_Base=temp
temp=""
ID_Extn=re.findall(r'[a-zA-Z]+',ID_Init)
temp=''.join(ID_Extn)
ID_Extn=temp
else:
if ID_Check:
temp=""
ID_Base=re.findall(r'\d+',ID_Check)
temp=''.join(ID_Base)
ID_Base=temp
else:
ID_Base="NONE"
ID_Extn="NONE"
cur.execute('''UPDATE Table SET ID_Base=?, ID_Extn=? WHERE rowid==?''',(ID_Base, ID_Extn, n))
n += 1
这可能不是做我想做的最好的方式,但它有效,我对结果很满意。最初的问题没有具体说明;但是当它们在正确的列中时,数字总是在一组 6 中。
我添加了第二个检查,其中数字可能位于描述列中,它们之间有额外的字符。
注意:这会非常快速地处理我的 10,000 多行。
推荐阅读
- angular - 反转 mat-checkbox 的“选中”值
- jquery - 无法将 API JSON 数据呈现到 vue js 中的表
- c# - 可聚焦值为 false 的 xPath 元素
- javascript - onMount 和事件监听器
- r - 绘制时间序列问题与图形之间的直线
- python - 如何复制文件内容并延迟附加到另一个文件?
- php - 最新版本的 PHP 和 Swiftmailer 会导致以“ATT00001.bin”的形式发送附件 - 为什么会这样?
- excel - 为什么网站更新后 Sendkeys 在输入字段上不起作用?- Excel VBA 硒
- powerbi - 用列表展开列
- docker - 无法在 Wndows 中从 Clickhouse (Docker) 监听 8123 端口