更新前两个字母或如果为空则标记为null

时间:2019-07-15 04:10:28

标签: sql postgresql

如果存在则强制更新首字母,否则将其标记为空

IF LENGTH([Column])>0 THEN UPDATE [Table] SET Position = Upper([Column]) ELSE RETURN NULL END IF;
Col A
abcdef
defghi
efgijg
''
elllef
''
ijkmnk

预期结果(前两个为大写,如果行值为空,则标记为null)

Col A
ABcdef
DEfghi
EFgijg
NULL
ELllef
NULL
IJkmnk

1 个答案:

答案 0 :(得分:2)

您可以使用SET部分中的CASE表达式进行操作

UPDATE the_table
  SET column_a = CASE 
                   WHEN column_a = '' THEN NULL
                   ELSE upper(left(column_a,2))||substr(column_a,3)
                 END;

如果您还想将仅包含空格的值也视为“空”,则可以改用WHEN trim(column_a) = '' THEN NULL