. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 回复
 
主题工具
nh_wzg
 
nh_wzg 的头像
核心会员
 
资 料:
注册日期: Jul 2000
帖子: 2,955 声望值: 3
精华: 5,解答: 9
#1 旧 2018-09-13, 21:21:39 默认 已解答: Sql / Sqlite场景下_简单字串匹配位置函数使用 + CSV保存及转码为UTF8的注意事项
nh_wzg 当前离线  

【环境】MS SQL Server / Sqlite下面
表1结构及样例如下:
代码:
ID,长名称,简称
1,沃尔玛深国投,沃尔
2,青岛环宇,环宇
3,很长名称五金店,长名
表2,表3结构与表1结构类似,仅仅是没有【简称】字段,记录的内容有相似性。
样例:
代码:
ID,长名称
1,很长名称五金店
2,长安汽车
3,青岛环宇A
4,湖南环宇B
但因为提交回来的地点不一致,录入人员不一,导致直接用【表1】【表2】【表3】的【长名称】字段进行等值匹配后,结果是不完整的。

【问题】
想利用【表1】的【简称】字段内容,分别与【表1】【表2】进行模糊匹配,表1,表2的结果同时并列,输出后,再用手工确认对应的关系。

希望得到的结果:
代码:
T1_ID,T1_长名称,T1_简称,T2_ID,T2_长名称
2,青岛环宇,环宇,3,青岛环宇A
2,青岛环宇,环宇,4,湖南环宇B
3,很长名称五金店,长名,1,很长名称五金店
然后通过手工对上面的输出结果第2行进行确认识别,然后删除。

BTW:
使用Sqlite时,导入的CSV文件内容含有中文时,要求为UTF-8编码,现在操作流程:
1)Excel / Wps_ET 》F12另存为CSV格式文件,
2)再用工具软件(比如NotePad)打开,另存时,再选定编码为UTF-8的方式来转换,

有没有图形界面的的工具,直接拉原生的CSV文件上去,然后直接输出默认文件名称格式、编码为UTF-8的CSV文件,供导入之用 ?

此帖于 2018-09-14 09:06:05 被 nh_wzg 编辑. .


平和精确简约应成为精品成员的三大基本要求!!!
nh_wzg
回复时引用此帖
最佳解答为:Cye3s
select * from t1 , t2 where instr(t2.longname,t1.shortname)>0?

转编码找个win下的命令行版iconv不就行了
Cye3s
 
Cye3s 的头像
热心会员
 
资 料:
注册日期: Feb 2008
帖子: 4,703 声望值: 5
精华: 1,解答: 56
#2 旧 2018-09-14, 13:28:57 默认
Cye3s 当前离线  

select * from t1 , t2 where instr(t2.longname,t1.shortname)>0?

转编码找个win下的命令行版iconv不就行了
回复时引用此帖
nh_wzg
 
nh_wzg 的头像
核心会员
 
资 料:
注册日期: Jul 2000
帖子: 2,955 声望值: 3
精华: 5,解答: 9
#3 旧 2018-09-14, 14:37:57 默认
nh_wzg 当前离线  

引用:
作者: Cye3s 查看帖子
select * from t1 , t2 where instr(t2.longname,t1.shortname)>0?

转编码找个win下的命令行版iconv不就行了
1、谢谢指点,有经验朋友的指点就是时间,就是金钱,就是效率啊

Sqlite instr() 函数在Sqlite 3.7.15后的版本可用。

原来一直在like %%模糊匹配中转圈(虽然最终发现也是可行的),但instr()的函数执行走索引,要比like的效率高(在测试样例中780左右的记录就有5倍的差别)。
有空要阅读_https://www.sqlite.org/lang_corefunc.html

2、GBK 转 UTF-8 的小工具,可用Encode_V1.3,绿色小巧,满足要求。

另外还有一个国际版本的转码工具:EncodeAnt V1.2.1 _http://www.laurenceanthony.net/software/encodeant/
_http://www.laurenceanthony.net/software/encodeant/releases/EncodeAnt121/EncodeAnt.exe
_http://www.laurenceanthony.net/software/encodeant/releases/EncodeAnt121/EncodeAnt_64bit.exe

另外如果有使用Total Commander的话,用用户定义转码的工具栏按钮的方法更方便。参考https://bbs.et8.net/bbs/showthread.php?t=1363137

3、Excel文件中,选定需要导出部分的数据,C-C,插入新页中,右键“选择性粘贴”,选“仅数值”。》F12导出为CSV格式,可以避免出现大量末尾逗号的问题。
上传的附件
文件类型: rar Encodersoft_V1.3.rar (27.4 KB, 1 次查看)

此帖于 2018-09-22 18:46:52 被 nh_wzg 编辑. .
回复时引用此帖
发表新主题 回复

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 09:30:28.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2018 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号