Hạnh Do Duc
Hạnh Do Duc

Reputation: 45

Translate IF-ELSE statement of MS SQL to SnowFlake

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

Upvotes: 2

Views: 311

Answers (1)

Lukasz Szozda
Lukasz Szozda

Reputation: 175556

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");

Upvotes: 1

Related Questions