2010-06-28 51 views
2

我很難找到語句的語法(或者甚至可能)。如何在/ if中運行選擇SQL語句?

我們正在運行SQL Server 2005,我想這樣做:

IF ((SELECT count(*) FROM mytable WHERE userid = 'myid' AND value = 3) < 1) then INSERT INTO mytable VALUES ('myid', 3)

有什麼建議?由於

回答

3
IF ((SELECT count(*) FROM mytable WHERE userid = 'myid' AND value = 3) < 1) 
BEGIN 
    INSERT INTO mytable VALUES ('myid', 3) 
END 

IF/ELSE reference

,或者您可以使用NOT EXISTS

IF NOT EXISTS (SELECT * FROM mytable WHERE userid = 'myid' AND value = 3) 
+0

的'不EXISTS'正是我期待的,謝謝! – 2010-06-29 12:55:45

1
DECLARE @COUNT int 

SET @COUNT=(SELECT count(*) FROM mytable WHERE userid = 'myid' AND value = 3) 
IF (@COUNT < 1) 
BEGIN 
    INSERT INTO mytable VALUES ('myid', 3) 
END 
1

你可以試試這個做在一個聲明:

INSERT INTO mytable 
SELECT 'myid', 3 
WHERE (SELECT count(*) FROM mytable WHERE userid = 'myid' AND value = 3) < 1