Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL为表联接执行数据比较_C#_Sql_Database_Join - Fatal编程技术网

C# SQL为表联接执行数据比较

C# SQL为表联接执行数据比较,c#,sql,database,join,C#,Sql,Database,Join,我正在开发一个使用数据库的C应用程序。我需要将两个表连接在一起,但它们的链接很奇怪。一个表有字母标识数据,如A、B、C等,另一个表有字符串值标识类型,如小或大 我需要连接这些表,以便第一个表列中代码为“a”的值链接到另一个表的值为“小”的列,而值为“b”或“d”的值链接到另一个表的值为“大” 使用标准SQL执行此操作的最佳方法是什么。有没有办法在join语句中添加额外的条件,或者最好在where子句中这样做 谢谢 -Jake处理此问题的最简单方法是使用一个映射值的中间表。然后,您可以将此表添加到

我正在开发一个使用数据库的C应用程序。我需要将两个表连接在一起,但它们的链接很奇怪。一个表有字母标识数据,如A、B、C等,另一个表有字符串值标识类型,如小或大

我需要连接这些表,以便第一个表列中代码为“a”的值链接到另一个表的值为“小”的列,而值为“b”或“d”的值链接到另一个表的值为“大”

使用标准SQL执行此操作的最佳方法是什么。有没有办法在join语句中添加额外的条件,或者最好在where子句中这样做

谢谢


-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代码编写这些内容!