【问题标题】:c# MS Access SELECT SQL query with a Constantc# MS Access SELECT SQL 查询与常量
【发布时间】:2017-01-30 15:27:29
【问题描述】:

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

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

在下面的示例中,它可以像在查询中放置一个常量字段一样简单,例如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
 )

【问题讨论】:

    标签: sql ms-access select union


    【解决方案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。由于表名不同,表之间没有重复。

    【讨论】:

    • 这是完美的。我从来不知道as [TYPE] 命令。非常感谢你!时间一到,我会接受这个答案!
    猜你喜欢
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2021-08-15
    相关资源
    最近更新 更多