你如何在SQLite中做正确的案例

时间:2017-11-22 06:52:58

标签: sqlite

美好的一天, 如何将值设置为Proper / Title大小写? 在SQLite中。

每个例子:

value:
THIS IS A SAMPLE
THIS-IS-A-SAMPLE
this is a sample

期望的输出:

This Is A Sample
This-Is-A-Sample
This Is A Sample

1 个答案:

答案 0 :(得分:1)

没有简单的内置机制来执行此操作。

可以编写一个递归common table expression来通过char转换字符串char:

WITH RECURSIVE pcase(id, rest, result) AS (
  SELECT ID,
         Name,
         ''
  FROM MyTable

  UNION ALL

  SELECT id,
         substr(rest, 2),
         result || CASE WHEN substr(result, -1) GLOB '[A-Za-z]'
                        THEN lower(substr(rest, 1, 1))
                        ELSE upper(substr(rest, 1, 1))
                   END
  FROM pcase
  WHERE rest <> ''
)
SELECT id,
       result
FROM pcase
WHERE rest = '';

(不需要ID。)

但是,以您从中访问数据库的任何语言创建用户定义的SQL函数会更好。