寻找解决以下问题的最佳方法
TBL1(本地SQL DB),其中ID=varchar
WITH TBL1 as (
SELECT
[Results] as 'ID'
FROM [DB].[results]
),
TBL2 as (
select * from openquery(LINKEDSERVER,'select ID, Name from DB')
)
Select
TBL1.[ID],
TBL2.[NAME]
FROM [DB]
left outer JOIN TBL1 ON TBL1.ID = TBL2.ID
WITH TBL1 as
(
SELECT CAST(ISNULL([Results],'0') AS INT) as 'ID'
FROM [DB].[results]
),
TBL2 as ( select * from openquery(LINKEDSERVER,'select ID, Name from DB')
)
Select TBL1.[ID], TBL2.[NAME]
FROM TBL1 Left Outer join TB2 ON TBL1.ID = TBL2.ID
WITH TBL1 as ( SELECT [Results] as 'ID' FROM [DB].[results]
),
TBL2 as ( select * from openquery(LINKEDSERVER,'select CONVERT(ID, CHAR) AS ID, Name from DB')
)
Select TBL1.[ID], TBL2.[NAME]
FROM TBL1 Left Outer join TB2 ON TBL1.ID = TBL2.ID
这将导致显示tbl1.id值,但所有tbl2.name值为空
你的语法看起来不对。数据库从何而来?DB不是模式名吗?
WITH TBL1 as (
SELECT
[Results] as ID
FROM [DB].[results]
),
TBL2 as (
select * from openquery(LINKEDSERVER,'select ID, Name from DB')
)
Select
TBL1.[ID],
TBL2.[NAME]
FROM TBL2 left outer JOIN TBL1 ON try_cast(TBL1.ID as int) = TBL2.ID;
问题内容: 我有三个表:R,S和P。 表R通过外键与S连接;有 应该 是S中至少一个的记录,所以我可以加入: 如果S中没有记录,那么我没有行,那很好。 然后表S与P联接,其中记录为P可能存在,也可能不存在,并与S联接。 所以我做 如果我想将第二个JOIN绑定到S而不是R,例如我可以使用括号,该怎么办: 还是这已经是R,S和P之间笛卡尔积的自然行为? 问题答案: 各种外部联接和普通联接都在相同的优先
什么是SQL和什么是不同的类型?
问题内容: 我们正在开发ETL作业,并且我们的顾问在连接表时一直使用“旧式” SQL 而不是使用内部连接子句 我的问题是,从长远来看,使用旧的“ where join”是否存在风险?这种联接被支持并保持为ANSI标准的时间有多长?我们的平台是SQL Server,我的主要原因是将来不再支持这些“ where joins”。发生这种情况时,我们必须使用“内部联接”样式的联接来修改所有ETL作业。 问
问题内容: 谁能告诉我如何编写查询并如上所述获取结果,谢谢!我试过加入,左右加入。一切都没有结果。 问题答案: 您可以在这两个表之间写左外部联接最好的理解方法是检查下图 查询您的要求 阅读有关 代码项目的 原始文章将对您有很大帮助:SQL Joins的可视表示 。 在以下位置找到原始版本:MySQL中的JOIN和OUTER JOIN之间的区别 。
问题内容: 我有两组数据。现有客户和潜在客户。 我的主要目标是弄清楚是否有任何潜在客户已经是现有客户。但是,跨数据集的客户命名约定不一致。 现有客户 潜在客户 我想写一些如下所示的选择语句来达到我的目标: 结果如下所示: 我对Levenshtein距离和Double Metaphone的概念含糊其词,但我不确定如何在此处应用它。 理想情况下,我希望SELECT语句的JOIN部分读取类似以下内容:但
问题内容: 对于某些类型的sql查询,数字辅助表可能非常有用。可以将其创建为具有特定任务所需行数的表,也可以将其创建为返回每个查询所需行数的用户定义函数。 创建此类功能的最佳方法是什么? 问题答案: 首先,具有14种不同解决方案的文章非常适合查看动态创建Numbers / Tally表的不同方法,但是正如文章和所引用的线程中指出的那样,有一个非常重要的报价… “关于效率和性能的建议通常是主观的。无