sql server中将一个字段根据某个字符拆分成多个字段显示,split,字符串拆分

sql server 数据库中某张表(Person)的数据信息是:

ID Address

1 平山花园-4单元-12幢-203
2 香山花园-3单元-22幢-304
现在有需求是,将地址信息显示形式改成4列 ,即小区名,单元号,楼房号,房间号 分成4列进行显示:

ID 小区名 单元号 楼房号 房间号
1 平山花园 4单元 12幢 203
2 香山花园 3单元 22幢 304

最简单的办法就是调用sql server中自带函数PARSENAME来进行拆分,但是注意:最多只能拆分成4个字段。

针对这个例子的实现:parsename默认是根据’.‘进行拆分的,所以首先要做的是将字段中的‘-’替换成’.’

SELECT Address, PARSENAME(REPLACE([Address],'-','.'),4) as 小区名,
--如果字段的内容是 4单元-12幢-203 那么此时小区名字段的信息就是NULL
PARSENAME(REPLACE([Address],'-','.'),3) as 单元号,
PARSENAME(REPLACE([Address],'-','.'),2) as 楼房号,
PARSENAME(REPLACE([Address],'-','.'),1) as 房间号 
FROM Person

你可能感兴趣的:(sql)