将varchar列的值分为两列

编程入门 行业动态 更新时间:2024-10-25 04:21:27
本文介绍了将varchar列的值分为两列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

如果我有一列中的字符串长度有所不同,但它们中都包含斜杠\, 我如何选择让一列显示\之前的所有内容,而另一列显示\之后的所有内容?

If I have a column in which strings vary in length but they ALL have a slash \ within, how can I SELECT to have one column display everything BEFORE the \ and another column displaying everything AFTER the \?

name column1 column2 DB5697\DEV DB5697 DEV

我已经在MSDN上看到了CHARINDEX和REVERSE,但是还不能解决问题.

I have seen CHARINDEX and REVERSE on MSDN but haven't been able to put together a soltuion.

在TSQL中,如何最好地将varchar/string列值拆分为2列?

How can I best split a varchar/string column value into 2 columns in a result set in TSQL ?

推荐答案

以下内容如何?( SQL小提琴 ):

How about the following (SQL Fiddle):

SELECT m.name, LEFT(m.name, CHARINDEX('\', m.name) - 1) AS column1, RIGHT(m.name, LEN(m.name) - CHARINDEX('\', m.name)) AS column2 FROM MyTable m

如何处理其中没有\的字符串( SQL Fiddle ):

How to handle strings with no \ in them (SQL Fiddle):

SELECT m.name, CASE WHEN CHARINDEX('\', m.name) = 0 THEN '' ELSE LEFT(m.name, CHARINDEX('\', m.name) - 1) END AS column1, CASE WHEN CHARINDEX('\', m.name) = 0 THEN '' ELSE RIGHT(m.name, LEN(m.name) - CHARINDEX('\', m.name)) END AS column2 FROM MyTable m;

更多推荐

将varchar列的值分为两列

本文发布于:2023-10-27 03:34:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1532193.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:varchar

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!