【问题标题】:Return True if specific value exists in table - sql如果表中存在特定值,则返回 True - sql
【发布时间】:2015-06-13 10:21:14
【问题描述】:

我想创建一个 SQL 查询,如果特定列中存在特定值,该查询将返回 True;如果不是,则返回 False。

我知道我可以创建类似'SELECT something FROM somewhere WHERE something' 的东西。在这种情况下,我不想选择任何东西,只是为了检查。

我的问题是我该怎么做。

【问题讨论】:

  • 你用的是什么数据库?
  • Microsoft Access 2013
  • 你可以在某处使用 SELECT COUNT(something) WHERE something

标签: sql ms-access select-query


【解决方案1】:

您可以使用IIf function:

SELECT IIf(something = 'Some value', True, False) FROM somewhere;

【讨论】:

    【解决方案2】:

    在 Access 中,您可以使用 DCount 表达式来计算您的 something 字段包含 'some value' 的行数。这是从立即窗口复制的示例:

    Debug.Print DCount("*", "somewhere", "something='some value'")
     1
    Debug.Print DCount("*", "somewhere", "something='BOGUS'")
     0 
    

    当计数大于零时,您可以调整为 True,如果计数为零,则为 False:

    Debug.Print (DCount("*", "somewhere", "something='some value'") > 0)
    True
    Debug.Print (DCount("*", "somewhere", "something='BOGUS'") > 0)
    False
    

    如果您想从查询中执行此操作,此查询将返回 -1 表示 True,返回 0 表示 False:

    SELECT (DCount("*", "somewhere", "something='some value'") > 0) AS value_exists;
    

    或者您可以使用Format 表达式将这些值显示为字符串:"True";或“假”

    SELECT Format(DCount("*", "somewhere", "something='some value'") > 0, 'True/False') AS value_exists;
    

    【讨论】:

      【解决方案3】:

      顾名思义,DLookup 就是为了这个:

      SomevalueExists = Not IsNull(DLookup("Id", "somewhere", "somefield = somevalue"))
      

      【讨论】:

        【解决方案4】:

        试试这个:

        select case when x is null then false else true end
        from (select max(somecol) x
        from sometable
        where somecol = somevalue) a
        

        【讨论】:

          【解决方案5】:

          只是使用

          select count(*) from tableName where columnName = '$variableInput';
          

          如果您打算重用它,您不妨将其设为一个准备好的语句,您可以通过您设计的任何接口调用该语句以使用您的数据库。如果返回值大于零,你就知道它是真的,例如

              if(preparedStatement($variableInput)>0)
          {
          $flag = true;
          }
          else
          {
          $flag = false;
          }
          

          【讨论】:

            猜你喜欢
            • 2011-02-21
            • 2017-10-10
            • 2019-02-15
            • 2019-05-23
            • 1970-01-01
            • 1970-01-01
            • 2020-03-11
            • 2023-03-28
            • 1970-01-01
            相关资源
            最近更新 更多