带有子字符串的CASE ReGex

时间:2019-03-26 11:05:37

标签: sql sql-server

我正在编写一个SQL查询,其中我使用2个名称(名字/姓氏)的子字符串来创建首字母列,数据在某种程度上是非结构化的(出于GDPR的原因无法显示),但是有公司名称的地方就在姓氏栏中。

我正在尝试使用Regex来表示何时已存在的首字母缩写栏为1个字母(即不是首字母缩写),并且如果不是首字母缩写,则运行我编写的可成功运行的命令。

CAST(CASE
     WHEN [DATA_TABLE].[INITIALS] = '\d' THEN (CONCAT(substring([DATA_TABLE].[FIRSTNAMES],1,1),substring([DATA_TABLE].[SURNAME],1,1)) AS char) AS INITIALS
        ELSE [DATA_TABLE].[INITIALS]
        end as char) as INITIALS,

数据格式的示例: 名姓缩写 约翰·史密斯                电气公司E 山姆·克雷格(Sam Craig SC)

我希望姓氏(公司名称)中的名称保持不变,即不变(即\ d regex)。不会的人将成为其名字的子字符串(1,1),而其姓氏的子字符串也成为(1,1)。

0 个答案:

没有答案