什么是选择'X'?

时间:2011-10-02 03:13:36

标签: sql-server sql-server-ce

 sSQL.Append(" SELECT 'X' ");
        sSQL.Append(" FROM ProfileInsurancePlanYear ");
        sSQL.Append(" WHERE ProfileID = " + profileid.ToString() + " AND CropYear = " + cropyear.ToString());

这是一个最初命中访问后端的查询。我已将其移至SQLCE并对此查询应该做什么感到困惑。

它命中的表结构是:

ProfileID
InsurancePlanID
CropYear
INsurance_Price
Levels_XML

我假设这会从Levels_XML列中选择profileid和cropyear匹配的东西吗?

这甚至可以在sqlCE中使用吗?

2 个答案:

答案 0 :(得分:11)

此类查询通常用于查看是否存在行。如果找到一行,查询将返回一个字符X.否则,它将是一个空的结果集......你也可以说

 sSQL.Append(" SELECT count(*) ");
 sSQL.Append(" FROM ProfileInsurancePlanYear ");
 sSQL.Append(" WHERE ProfileID = " + profileid.ToString() + 
             " AND CropYear = " + cropyear.ToString());

将返回0或某个正数的结果。不同的方法都要求数据库简单地指示是否存在与条件匹配的任何记录。

答案 1 :(得分:0)

通常,选择'X'与EXISTS一起使用,因为EXISTS谓词并不关心行中的值,而只是关心那些行是否存在。

例如:-

Q。查找至少有一个人向其报告的员工。

#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
NumericVector test(Nullable<NumericVector> x_) {
  NumericVector x;
  if (x_.isNull()) {
    x = NumericVector::create(3);
    return x;
  }
  
  x = x_;
  //Other stuff happens
  return x;
}