Search
 
SCRIPT & CODE EXAMPLE
 

SQL

SQL NOT EXISTS

SELECT customer_id, first_name
FROM Customers
WHERE NOT EXISTS (
  SELECT order_id
  FROM Orders
  WHERE Orders.customer_id = Customers.customer_id
);
Comment

if not exists in sql

At first glance your original attempt seems pretty close. I'm assuming that clockDate is a DateTime fields so try this:

IF (NOT EXISTS(SELECT * FROM Clock WHERE cast(clockDate as date) = '08/10/2012') 
    AND userName = 'test') 
BEGIN 
    INSERT INTO Clock(clockDate, userName, breakOut) 
    VALUES(GetDate(), 'test', GetDate()) 
END 
ELSE 
BEGIN 
    UPDATE Clock 
    SET breakOut = GetDate()
    WHERE Cast(clockDate AS Date) = '08/10/2012' AND userName = 'test'
END 
Note that getdate gives you the current date. If you are trying to compare to a date (without the time) you need to cast or the time element will cause the compare to fail.

If clockDate is NOT datetime field (just date), then the SQL engine will do it for you - no need to cast on a set/insert statement.

IF (NOT EXISTS(SELECT * FROM Clock WHERE clockDate = '08/10/2012') 
    AND userName = 'test') 
BEGIN 
    INSERT INTO Clock(clockDate, userName, breakOut) 
    VALUES(GetDate(), 'test', GetDate()) 
END 
ELSE 
BEGIN 
    UPDATE Clock 
    SET breakOut = GetDate()
    WHERE clockDate = '08/10/2012' AND userName = 'test'
END 
As others have pointed out, the merge statement is another way to tackle this same logic. However, in some cases, especially with large data sets, the merge statement can be prohibitively slow, causing a lot of tran log activity. So knowing how to logic it out as shown above is still a valid technique.
Comment

sql select if not exists

BEGIN
   IF NOT EXISTS (SELECT * FROM EmailsRecebidos 
                   WHERE De = @_DE
                   AND Assunto = @_ASSUNTO
                   AND Data = @_DATA)
   BEGIN
       INSERT INTO EmailsRecebidos (De, Assunto, Data)
       VALUES (@_DE, @_ASSUNTO, @_DATA)
   END
END
Comment

sql not exists

-- The SQL NOT EXISTS Operator will act quite opposite to EXISTS Operator. 
-- It is used to restrict the number of rows returned by the SELECT Statement.

SELECT column_name
FROM table_name
WHERE NOT EXISTS (Write Subquery to Check);
Comment

PREVIOUS NEXT
Code Example
Sql :: number(10 2) in sql means 
Sql :: sql merge statement 
Sql :: FIND ABOVE AVERAGE SALARY EARNER IN SQL 
Sql :: sql server inner join 
Sql :: SQL Server date literal 
Sql :: mysql create view 
Sql :: merge command in sql 
Sql :: sql group_concat 
Sql :: create procedure 
Sql :: three inner joins sql 
Sql :: systems sql 
Sql :: show broken table mysql 
Sql :: mysql allow connection from any host 
Sql :: reset postgresql password windows 
Sql :: drop table oracle 
Sql :: snowflake insert select 
Sql :: Oracle SQL join three tables and group by column 
Sql :: sql xor 
Sql :: how to reset autoincrement in sqlite java 
Sql :: mysql order by list 
Sql :: create a table 
Sql :: desc sql 
Sql :: postgres where 
Sql :: sql query interview questions githu 
Sql :: not in sql 
Sql :: left join 
Sql :: on delete set default 
Sql :: ajax error exception handeling 
Sql :: mysql select all and rename one 
Sql :: How to concatenate text from multiple rows into a single text string in SQL Server 
ADD CONTENT
Topic
Content
Source link
Name
2+6 =