SQL-仅将每个单词的首字母大写,其余全部小写

时间:2019-10-07 13:19:34

标签: sql sql-server

我已经看到了无处不在的内容,我似乎无法为我的情况找到切合实际的解决方案。 在我们的地址字段中,我们具有诸如“ 555 RODeo驱动器,555竞技驱动器,555竞技驱动器等”的值。这些值的格式必须为555竞技驱动器。请提供执行此操作的方法的建议,也可以在城市,州和国家/地区字段,即美国>美国。

2 个答案:

答案 0 :(得分:0)

这种工作最好在表示层中完成,在输入层中,您可以在输入数据时使用Mask,也可以更新这些字符串,但这是一个提示

SELECT STRING_AGG(S, ' ')
FROM
(
  VALUES
  (1, '555 RODeo drive'), 
  (2, '555 rodeo drive'), 
  (3, '555 RODEO DRIVE'),
  (4, 'UNITED STATES')
) T(ID, Str) CROSS APPLY
(
  SELECT CONCAT(UPPER(LEFT(Value, 1)), LOWER(RIGHT(Value, LEN(Value) -1))) S
  FROM STRING_SPLIT(Str, ' ')
) TT
GROUP BY ID;

Online Demo

答案 1 :(得分:0)

最简单的方法是使用Fuzzy Lookup in SSIS. 使用SSIS的sample 实现模糊查找。

但是,如果您真的想使用T-SQL,此post可能会有所帮助...