Translate IF-ELSE statement of MS SQL to SnowFlake

Viewed 211

I have a MS SQL query like this:

IF EXISTS(SELECT * FROM TableDescription WHERE "viewname"='abc')
UPDATE TableDescription 
SET "viewname"='abc' , "description"='description xyz' 
WHERE "viewname"='abc'
ELSE
INSERT INTO TableDescription ("viewname","description") VALUES('abc','description xyz')

And I would like to translate the above MS SQL query to a coresponding query that works on SnowFlake but not sure how I can do it :( Could someone please give me a hint? Thanks so much Hanh

1 Answers

MERGE could be used:

MERGE TableDescription t
USING (SELECT 'abc' AS "viewname", 'description xyz' AS "description")s
  ON t."viewname" = s."viewname"
WHEN MATCHED THEN 
     UPDATE SET t."viewname"   = s."viename",
                t."description"= s."description
WHEN NOT MATCHED THEN 
     INSERT("viewname", "description")
     VALUES (s."viewname", s."description");
Related