2

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

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

我的问题是我该怎么做。

4

5 回答 5

1

您可以使用以下IIf功能

SELECT IIf(something = 'Some value', True, False) FROM somewhere;
于 2015-06-13T10:31:20.770 回答
1

在 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;
于 2015-06-13T16:08:16.547 回答
1

顾名思义,DLookup 就是为此:

SomevalueExists = Not IsNull(DLookup("Id", "somewhere", "somefield = somevalue"))
于 2015-06-13T16:13:13.090 回答
0

尝试这个:

select case when x is null then false else true end
from (select max(somecol) x
from sometable
where somecol = somevalue) a
于 2015-06-13T10:42:50.323 回答
0

只需使用

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

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

    if(preparedStatement($variableInput)>0)
{
$flag = true;
}
else
{
$flag = false;
}
于 2015-06-13T15:36:54.557 回答