c#MS使用常量访问SELECT SQL查询

时间:2017-01-30 15:27:29

标签: sql ms-access select union

我在两个不同的表中搜索包含用户输入的字符串的任何内容。

但是,我需要定义从哪个表中检索记录。

在下面的示例中,它可能就像在查询中放置常量字段一样简单,例如TYP,在我的c#代码中,我会注意到:

TYP=0 - >这意味着它来自表tbl_parts

TYP=1 - >这意味着它来自表tbl_kits

我不太确定如何做到这一点。如何插入常量字段(该字段在查询中始终是相同的值)?还是有另一种更好的方法吗?

非常感谢任何帮助!

 SELECT ID, PART_NUMBER, DESCRIPTION 
 FROM tbl_parts WHERE (
      PART_NUMBER LIKE @SEARCH OR
      DESCRIPTION LIKE @SEARCH
 )
 UNION
 SELECT ID, KIT_NUMBER, DESCRIPTION
 FROM tbl_kits WHERE (
      KIT_NUMBER LIKE @SEARCH OR
      DESCRIPTION LIKE @SEARCH
 )

1 个答案:

答案 0 :(得分:1)

这很简单。只需在查询中包含该列:

SELECT 'parts' as which, ID, PART_NUMBER, DESCRIPTION 
FROM tbl_parts
WHERE PART_NUMBER LIKE @SEARCH OR DESCRIPTION LIKE @SEARCH
UNION ALL
SELECT 'kits' as which, ID, KIT_NUMBER, DESCRIPTION
FROM tbl_kits
WHERE KIT_NUMBER LIKE @SEARCH OR DESCRIPTION LIKE @SEARCH;

注意:我将UNION更改为UNION ALL。当您特别想要消除重复项的开销时,您应该只使用UNION。因为表名不同,所以表之间没有重复。