2016-12-01 98 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

相关问题