TSQL中的正则表达式

Cov*_*ove 2 t-sql sql-server sql-server-2005

在列e_vis_nameI的单元格中,具有组织结构,其中划分用\符号划分,例如

  • 莫斯科\方向
  • 雅罗斯拉夫尔\销售
  • 鄂木斯克\商业中心\销售

我需要在第一个\符号后剪切所有内容以获得以下结果:

  • 莫斯科
  • 雅罗斯拉夫尔
  • 鄂木斯克

我该怎么做?

Tom*_*ler 5

您可以使用LEFTCHARINDEX的组合,如下所示:

SELECT LEFT(colname, CHARINDEX('\', colname)-1) FROM table
Run Code Online (Sandbox Code Playgroud)

编辑:如果您没有\符号,如果您只想抓取整个列,则可以执行以下操作:

SELECT 
    CASE WHEN CHARINDEX('\', colname) > 0 THEN LEFT(colname, CHARINDEX('\', colname)-1)
    ELSE ISNULL(colname, '') 
    END
FROM table
Run Code Online (Sandbox Code Playgroud)

这说:"如果有\,则将字符带到那一点,否则取整列.如果该列NULL只是设置一个空字符串."

我相信你可以根据你的目的调整它.