我有两列:
column_a column_b
www.de.google.com/best best
www.fr.google.com/free free
www.google.com/fr/best NULL
我已经编写了一个regexp来创建column_b
,但是,如果column_a
中的链接在.com
之后有本地化,这个regexp不会创建结果。 现在我想用case
向第三行添加值best
CASE
WHEN column_a LIKE '%best%' THEN 'best'
WHEN column_b LIKE '%free%' THEN 'free'
END AS type_2
这将创建另一列type2
,结果如下所示:
column_a column_b type_2
www.de.google.com/best best best
www.fr.google.com/free free free
www.google.com/fr/best NULL best
我希望我的结果是这样的:
column_a column_b
www.de.google.com/best best
www.fr.google.com/free free
www.google.com/fr/best best
如果case
语句没有值,我如何编写该语句来填充column_b
中的空白,而不创建另一列呢?
UPDATE UrTableName
SET column_b =
CASE
WHEN column_a LIKE '%best%' THEN 'best'
WHEN column_a LIKE '%free%' THEN 'free'
END
WHERE column_b IS NULL
差不多吧。 请注意,我使用的是MS_SQL语法。 对于MySql,它可能不同,但逻辑是存在的