2016-12-01 85 views

回答

0

要檢查的記錄存在,你可以使用此代碼:

IF EXISTS(SELECT TOP(1) 1 FROM schema.table WHERE condition) 
BEGIN 
SELECT field FROM schema.table WHERE condition; 
END 
ELSE 
BEGIN 
--do something for no records 
END 
+0

感謝您的支持,我已經開始測試。 問候。 – Molitaa

+0

如果我想處理它不存在,我只是補充:不是之前:存在? – Molitaa

+0

是的,IF NOT EXISTS也可以 – under

0
SELECT TOP 1 * FROM myTable 

會給你表的第一條記錄。如果你沒有收到任何東西,你的表中沒有記錄。

SELECT COUNT(*) as Rows from myTable 

會給你表中有多少條記錄。這應該只在需要知道多少行時使用。

+0

謝謝您的回答,我會看到我的查詢,看看我能做到。 問候。 – Molitaa

+0

使用'*'很昂貴,只返回你需要的字段。 – Lankymart

+0

感謝您的幫助 – Molitaa

0

試試這個:

DECLARE 
    @ID INTEGER 
SELECT 
    @ID = 2 --enter ID you are looking for here 

IF EXISTS 
(SELECT TOP(1) ID, FieldName FROM MyTable WHERE ID = @ID) 
BEGIN 
    SELECT 
     ID, 
     FieldName 
    FROM 
     MyTable 
    WHERE ID = @ID 
END 

ELSE 

BEGIN 
    SELECT UserNote = 'No records match your search.' 
END 
+0

當使用'EXISTS'' SELECT'不需要返回任何東西時,您可以使用'IF EXISTS (SELECT TOP(1)NULL FROM MyTable WHERE ID = @ID'''。 – Lankymart

0
SELECT COUNT(*) AS COUNTOFROWS FROM TABLENAME WHERE <CONDITION> 

EX:

SELECT COUNT(*) AS NUMBEROFSTUDENTS FROM STUDENTS WHERE STUDENT_GRADE = 'A' 

這裏,

COUNT(*) - 會給你該滿意行數

(前 STUDENT_GRADE = 25)。

關閉當然,COUNTOFROWS是可選的和用戶定義的名稱,你可以定義哪些是相對的

+0

感謝您的幫助 – Molitaa