开发者

How do I convert my CASE WHEN THEN statement?

开发者 https://www.devze.com 2022-12-10 06:26 出处:网络
Please help me to convert the below statement: CASE WHEN TITLE IS NOT NULL THEN \'A\' WHEN LOCAL_TITLE I开发者_开发问答S NOT NULL THEN \'B\'

Please help me to convert the below statement:

CASE 
  WHEN TITLE IS NOT NULL THEN 'A'
  WHEN LOCAL_TITLE I开发者_开发问答S NOT NULL THEN 'B'
  END
AS COMBINED_TITLE

to something like this:

CASE 
  WHEN TITLE IS NOT NULL THEN COMBINED_TITLE=TITLE
  WHEN LOCAL_TITLE IS NOT NULL THEN COMBINED_TITLE=LOCAL_TITLE
  END
AS COMBINED_TITLE

Thanx in advance Greg


Are you trying to use it in an update statement? You could actually do away with the CASE statement in this instance

UPDATE
    <table>
SET
    COMBINED_TITLE = COALESCE(TITLE, LOCAL_TITLE, COMBINED_TITLE)

COALESCE will find the first NON-NULL value in the list


I'm not sure what you mean, but if you're trying to set a variable, you would do this:

SELECT
    @CombinedTitle = CASE
        WHEN Title IS NOT NULL THEN Title
        WHEN Local_Title IS NOT NULL THEN Local_Title
    END
...

If you still want to create column Combined_Title but with values from the two title columns, you would do:

SELECT
    CASE
        WHEN Title IS NOT NULL THEN Title
        WHEN Local_Title IS NOT NULL THEN Local_Title
    END AS Combined_Title
...

Also see documentation on COALESCE, it even mentions that it is equivalent to a CASE statement just like yours (with the addition of ELSE NULL.)


ISNULL(TITLE, LOCAL_TITLE) AS COMBINED_TITLE

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号