永发信息网

关于Access中的 UNIOn 后 Memo类型数据合并问题

答案:2  悬赏:0  手机版
解决时间 2021-02-25 17:37
假设情况是这样:
在web1中,有列数据Picture_download数据类型为memo,其中存了大量数据
在web2中,没有Picture_download这列数据
我现在的要求是把web1中的Picture_download的数据与Web2添加一列Picture_download进行Union查询
但遇到了问题
查询结果,web1中的Picture_download数据被截取了
问题肯定是出在了union后新添加的一列数据没有选择备注类型,从而导致了原memo数据的丢失,请问怎么解决?
代码如下:
Select Picture_download
from web1
Union
Select "" as Picture_download
from web2
最佳答案
即使web2含有memo数据类型字段,使用union后数据库引擎也会自动将该字段处理为文本数据类型,超出范围的数据会被截断(例如ACCESS数据库文本类型字段最多可存储255个字符)。你可以尝试一下web1自己跟自己联合一下,同样会被截断。

要解决这个问题,需要绕一下弯子:

假设web1和web2有一个双方都有的字段 item,先联合 item字段(memo数据类型字段不参与),然后用联合表再与web1基于item字段左联接取回web1的Picture_download的字段值,这样memo数据就不会被截断了。
select t.*, web1.Picture_download from
(select item from web1 union select item from web2) t
left join web1 ON t.item=web1.item;

注意上面代码,如果要保留web1 和web2 item的重复记录则要使用ALL关键字。

哦!对了,如果直接在联合里配合ALL关键字,则两表直接联合是不会截断memo数据类型字段的,但是这样做出现重复记录的问题,应予以留意。
(因为无须比较重复记录,memo数据类型字段没必要予以截断。如果需要比较的话由于memo数据类型的记录值可能会很大,两个字符数很多的的memo数据值实施比较所带来的系统开销会变得非常之大导致SQL语句运行耗时过长。因此数据库引擎的设计者采取了折中方案,只截取最开头的内容进行比较以节省开销)。

例如你提问的SQL联合语句增加一个关键字all后就不会出现截断现象。
Select Picture_download
from web1
Union all
Select "" as Picture_download
from web2

请留意上面代码使用ALL关键字所带来的重复记录问题,如果不考虑滤除重复记录时使用UNIOn ALL处理起来其效率比较高和简单。
全部回答
同问。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中东是怎么划分的有哪些国家 30分
为明确诊断,最有价值的检查是A.24小时动态心
顺密路/S203(路口)我想知道这个在什么地方
【汉族的资料】云南省的汉族人说()。
四季红早餐这个地址在什么地方,我要处理点事
刚做了tpo22.感觉阅读好难啊,请问真题也这么
景县杜桥镇现在有哪几处小学?
帝豪大酒店地址在什么地方,想过去办事
长期涂抹碘伏后皮肤变得很干,应该怎么处理
东城财富广场这个地址在什么地方,我要处理点
元宵节在苏州是怎么过的?
一樽还酹江月怎么读
从广东阳江去苏州怎么走?(首选交通工具:火
重庆香辣虾地址在哪,我要去那里办事
‘‘您站如松,坐如钟,行如风.’’这句话运用
推荐资讯
汇香居木炭火锅怎么去啊,有知道地址的么
中国银行的信用卡透支5000元大概利息是多少啊
玲珑的四字成语都是什么?
皇家烤官火锅店在哪里啊,我有事要去这个地方
删除回收站的文件是放在c盘什么地方
全橙热恋在哪里啊,我有事要去这个地方
判断题两个数相除,商是10,被除数扩大4倍,
这个季节怎样种才能使葱子发芽更快
discuz!x3.1不小心把source/plugin/qqconnec
新手如何驾车
minecraft新版暮色森林巨魔洞窟附近怎么一直
推荐几部萝莉系主演的恐怖电影
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?