如何使用like语句进行分组

时间:2014-02-03 23:16:50

标签: sql sql-like

这里第一次发布海报,所以请善待......

我正在尝试创建一个新列,该列将对包含文本字符串的另一列的条目进行分组 - 例如,我希望在A列中包含“penny”的条目在新列中具有值“Penny”, A列中包含“镍”的条目有“镍”等。我假设我需要使用LIKE语句,因为在我分类的文本字符串之前/之后可能有也可能没有字符通过(即便士,镍等)。

我建议使用CASE语句,但我不确定CASE语句是否可以与LIKE一起使用。有人有主意吗?我不熟悉SQL,所以我可能会遗漏一些东西,但会感激任何帮助!

2 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作
UPDATE mytable
SET new_column = 
    (CASE
        WHEN original_column LIKE '%nickel%' THEN 'nickel'
        WHEN original_column LIKE '%penny%'  THEN 'penny'
        ELSE 'no match' END);

您在不同SQL方言上的里程数可能会有所不同;这是我的头脑。

答案 1 :(得分:0)

如果我从所提供的示例中了解您希望做什么,我相信您可以在不使用Like的情况下将首字母大写,这是一个非常昂贵的运营商。

怎么样:

select metal, concat(upper(substr(metal,1,1)),substr(metal,2)) as CapitalizedMetal from t1

这是sqlfiddle