在 e_vis_name
列的单元格中,我有组织结构,其中的部门用 \
符号划分,例如
- 莫斯科\方向
- 雅罗斯拉夫\销售
- 鄂木斯克\商业中心\销售
我需要在第一个\符号之后剪切所有内容以获得以下结果:
- 莫斯科
- 雅罗斯拉夫
- 鄂木斯克
我该怎么做?
最佳答案
SELECT LEFT(colname, CHARINDEX('\', colname)-1) FROM table
编辑:如果您没有 \
符号,如果您只想获取整列,您可以这样做:
SELECT
CASE WHEN CHARINDEX('\', colname) > 0 THEN LEFT(colname, CHARINDEX('\', colname)-1)
ELSE ISNULL(colname, '')
END
FROM table
这是说,“如果有一个\
,那么取那个点之前的字符,否则取整列。如果该列是NULL
,那么就设置一个空字符串。”
我相信您可以根据自己的目的进行调整。
关于sql-server - SQL 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30184022/