2011-10-02 65 views
4
sSQL.Append(" SELECT 'X' "); 
     sSQL.Append(" FROM ProfileInsurancePlanYear "); 
     sSQL.Append(" WHERE ProfileID = " + profileid.ToString() + " AND CropYear = " + cropyear.ToString()); 

這是一個最初訪問後端的查詢。我已經將其移交給SQLCE,並對該查詢應該執行的操作感到困惑。什麼是選擇'X'?

它擊中

表結構是:

ProfileID 
InsurancePlanID 
CropYear 
INsurance_Price 
Levels_XML 

我假定這將選擇從Levels_XML列一些地方的簡檔和cropyear匹配?

這是否甚至可以在sqlCE中工作?

回答

9

這種類型的查詢通常用於查看是否存在行。如果發現某一行,查詢將返回單個字符,X.否則,這將是一個空的結果集...你也可以說

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

將返回的結果與0或一些積極的數。不同的方法都要求數據庫簡單地指出是否存在與條件匹配的任何記錄。

+1

0也是一個數字。 ;) – Guffa

+0

挑剔,不是我們:) – Sparky

+0

COUNT可能很昂貴,是一個不好的例子。 'SELECT 1 WHERE EXISTS(..query here ..)'會更好,檢查0或1行 – gbn