C# SQL为表联接执行数据比较
我正在开发一个使用数据库的C应用程序。我需要将两个表连接在一起,但它们的链接很奇怪。一个表有字母标识数据,如A、B、C等,另一个表有字符串值标识类型,如小或大 我需要连接这些表,以便第一个表列中代码为“a”的值链接到另一个表的值为“小”的列,而值为“b”或“d”的值链接到另一个表的值为“大” 使用标准SQL执行此操作的最佳方法是什么。有没有办法在join语句中添加额外的条件,或者最好在where子句中这样做 谢谢C# SQL为表联接执行数据比较,c#,sql,database,join,C#,Sql,Database,Join,我正在开发一个使用数据库的C应用程序。我需要将两个表连接在一起,但它们的链接很奇怪。一个表有字母标识数据,如A、B、C等,另一个表有字符串值标识类型,如小或大 我需要连接这些表,以便第一个表列中代码为“a”的值链接到另一个表的值为“小”的列,而值为“b”或“d”的值链接到另一个表的值为“大” 使用标准SQL执行此操作的最佳方法是什么。有没有办法在join语句中添加额外的条件,或者最好在where子句中这样做 谢谢 -Jake处理此问题的最简单方法是使用一个映射值的中间表。然后,您可以将此表添加到
-Jake处理此问题的最简单方法是使用一个映射值的中间表。然后,您可以将此表添加到语句中,并使用它将主表连接在一起。制作一个case语句,将a映射到“small”和b、c、d。。。要在第一个表中设置“大”,请使用新字段连接表创建一个中间表或查询
SELECT *
FROM (
SELECT CASE col WHEN 'A' THEN 'small'
WHEN 'B' THEN 'large'
WHEN 'D' THEN 'large'
ELSE NULL
END AS col
FROM one
) x
JOIN two t
ON x.col = t.col
根据您的描述,我认为您可以使用公共表表达式来选择您需要的值,以及具有A、B、C值的列。然后使用CTE加入第二个表。它将如下所示 );带有一个完整的列 像 选择column1,columnb,CASE A_B_C_COLUMN当'A'时,然后选择'LARGE'当'B'时,然后选择'SMALL'当'C'时,然后选择'TINY'作为ColumnC结束 从A_CTE.column上的A_CTE JOIN table B中选择*c=table B.condition column
如果您能提供更多详细信息,很高兴为您编写SQL语句。我认为,最好用C代码编写这些内容!