当前位置: 首页 > 面试题库 >

Access / SQL Server 2008加入“赞”无法正常工作

闽高峯
2023-03-14
问题内容

我提前道歉,因为该问题在该站点上以多种形式出现过多次,但是我尝试实施的所有解决方案似乎都无法正常工作,而且我找不到找到正确答案的已回答问题。

我正在为一名同事工作,尽管将来一旦他可以设置服务器就可以使用SQL。我正在尝试使用Like连接两个表,这很容易,除了它不能正常工作。首先,来自每个表的示例:

T1

+-------------------------+--------------------------------------------------------------+--------------+
|LOCATION_CG_LOC_LEGACY_ID|LOCATION_CODE_DESC                                            |PI_LOW_SIDE_MW|
+-------------------------+--------------------------------------------------------------+--------------+
|55555-Opt01              |Autobot Transformer, 800/900 NETWORK, Optimus #1 - 800 NETWORK|5             |
+-------------------------+--------------------------------------------------------------+--------------+
|55555-Opt02              |Autobot Transformer, 800/900 NETWORK, Optimus #2 - 800 NETWORK|6             |
+-------------------------+--------------------------------------------------------------+--------------+
|55555-Opt03              |Autobot Transformer, 800/900 NETWORK, Optimus #3 - 800 NETWORK|6.5           |
+-------------------------+--------------------------------------------------------------+--------------+

T2

+------+-----------------------------------------+------------+
|DIVID |DMT Bank Name                            |5 Digit Code|
+------+-----------------------------------------+------------+
|647531|800/900 NETWORK, Optimus #1 - 800 NETWORK|55555       |
+------+-----------------------------------------+------------+
|647532|800/900 NETWORK, Optimus #2 - 800 NETWORK|55555       |
+------+-----------------------------------------+------------+
|647533|800/900 NETWORK, Optimus #3 - 800 NETWORK|55555       |
+------+-----------------------------------------+------------+

我试图将类似的项目本质上结合起来,以便我可以执行我想要的任何查询。但是现在,我可以选择全部。我只需要合并类似的项目。在T1中,第一列[LOCATION_CG_LOC_LEGACY_ID]是非重复的唯一项。在T2中,[DIVID]是非重复的唯一项。我正在尝试使用一起查询它们

SELECT *
FROM [Data Table 1] INNER JOIN [Data Table 2] ON (([t1].[LOCATION_CODE_DESC] Like [t2].[DMT Bank Name]
OR [t2].[DMT Bank Name] Like [t1].[LOCATION_CODE_DESC]) AND ([T1].[LOCATION_CG_LOC_LEGACY_ID] Like [t2].[5 Digit Code] or [t2].[5 Digit Code] Like [T1].[LOCATION_CG_LOC_LEGACY_ID]));

现在,我认为该连接条件的后半部分存在问题,但是即使仅使用前半部分,我也会得到零结果。但是,如果我编辑每个表的中间列,然后使用该条件的前半部分,则效果很好。换句话说,如果我使列完全匹配,则查询似乎可以正常工作,这无视使用“
like”联接开头的全部要点。

我尚未在SQLServer中进行过尝试,但是至少无论如何,我都需要使它在Access中正常工作,至少可以作为概念证明。各位女士和先生们可以给我的任何帮助将不胜感激,即使这将我引向了我错过的另一个话题,就像世界末日一样。

最后,如果可能的话,我试图避免使用VBA。


问题答案:

您需要添加通配符,例如在sqlserver中%使用通配符LIKE,否则,它本质上成为对是否相等(=)的检查。这是您使用通配符的查询:

SELECT *
FROM  t1 
INNER JOIN  t2 
ON [t1].[LOCATION_CODE_DESC]   Like '%' + [t2].[DMT Bank Name]+ '%' 
AND [T1].[LOCATION_CG_LOC_LEGACY_ID] Like '%' + CONVERT(varchar(50),[t2].[5 Digit Code] )+ '%';

这是一个小提琴:http ://sqlfiddle.com/#!3/
dc2b9/10/0

您还需要转换为intvarchar某种兼容的。

但是请注意,join对大型数据集执行“按赞”操作(​​尤其是使用转换)将导致非常差的性能

编辑:MS Access

当您将int转换为字符串并使用不同的通配符时,MS Access将有所不同。我没有安装访问权限,因此无法测试,但是我认为您的MS Access查询如下所示:

SELECT *
FROM  t1 
INNER JOIN  t2 
ON [t1].[LOCATION_CODE_DESC]   Like '*' & [t2].[DMT Bank Name] & '*' 
AND [T1].[LOCATION_CG_LOC_LEGACY_ID] Like '*' & CStr( [t2].[5 Digit Code] ) & '*';


 类似资料:
  • 问题内容: 我编写此代码是为了使用HTML中的元素将图像上传到本地Apache Web服务器。该记录为不为空,但为什么是完全空的? 这是我在本地网络服务器上的 将记录所有PHP文件的代码行,而不是返回的结果 问题答案: 仅记录formData对象时,它始终返回空,因为您无法记录formData。 如果您只需要在发送前对其进行记录,则可以使用它来获取formData对象中的条目

  • 问题内容: 因此,我的设置无法按我想要的方式工作。因此,每当我运行该程序时,它就会立即从0变为100。我尝试使用,任务,并尝试了,但没有任何尝试。 这是我的程序: @MadProgrammer这是我尝试做一名摆动工作人员并将每个名称写入文档并更新进度栏的尝试。该程序将达到86%左右并停止运行,永远不会创建完成的文档。该程序将创建一个空白文档。这是我首先创建的SwingWorker对象,这是两种方法

  • 问题内容: 我在JLayeredpane上有两个JPanels。其中一个显示pdf,重叠的一个具有透明背景(我使用过setOpaque(false))。现在,我可以将图形添加到透明面板中,这样看来我实际上是在注释pdf。我想要一个橡皮擦工具来删除这些注释。我尝试使用以下代码 其中path是由多条线构成的形状。现在,不是在先前的图形上绘制 透明线 ,而是绘制 黑线 。我要去哪里错了? 问题答案: 请

  • 问题内容: 这看起来有效,但无法正常工作。我希望菜单悬停时’huh’div不透明。我尝试了淡入/淡出效果,但效果很好,但只有一次很奇怪。 问题答案: 不带点使用:

  • 问题内容: 我正在编辑从tesseract ocr获得的一些电子邮件。 这是我的代码: 但是输出不正确。 输入: 输出: 但是,当我在每次替换后将结果分配给新的String时,它都能正常工作。为什么在同一字符串中连续分配不起作用? 问题答案: 您将在Javadoc中的String.replaceAll()中注意到,第一个参数是正则表达式。 句点()和管道()以及花括号()都有特殊的含义。您需要对它

  • 问题内容: 我正在编写3D绘画,但在Java中发现了问题。在代码的一部分中,它起作用了: 在另一种情况下,它不起作用: 你能告诉我如何使它工作吗?谢谢在我问之前,是的,它确实执行了那部分代码。 编辑: 哦,现在工作正常,谢谢 问题答案: 代替: