如何在sql server 2008中将一大量数据列拆分为两列或三列? [英] How to split one large amount of data column into two or three columns in sql server 2008?

查看:317
本文介绍了如何在sql server 2008中将一大量数据列拆分为两列或三列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,



我的表格中有一个四列用于一个地址,每个列的大小都是50个字符长度,所以我希望在50之后分割数据字符int第二列或第三列。

例如: -

地址

140/3 abcd,narayana,delhi,pin code-201101



i希望在50个字符后拆分此地址。



如何在sql server 2008中实现?



请帮帮我。



谢谢

Ankit Agarwal
软件工程师

Hello,

I have a four column for one address in my table and every each column size is 50 character length, so i want to split data after 50 character int second or third column.
like example:-
Address
140/3 abcd, narayana, delpin code-201101

i want to split this address after 50 character.

How can be possible in sql server 2008?

Please help me.

Thanks
Ankit Agarwal
Software Engineer

推荐答案

我最喜欢的方法是使用常用表格表达式 [ ^ ]。

示例:

My favorite method is to use Common Table Expressions[^].
Example:
DECLARE @fullAddress NVARCHAR(255)

SET @fullAddress  = '140/3 abcd, narayana, delhi,pin code-201101'

;With AddressParts AS
(
    SELECT 1 AS PartNumber, LTRIM(LEFT(@fullAddress, CHARINDEX(',',@fullAddress)-1)) AS Part, RIGHT(@fullAddress, LEN(@fullAddress) - CHARINDEX(',',@fullAddress)) AS Remainder
    UNION ALL
    SELECT PartNumber + 1 AS PartNumber, LTRIM(LEFT(Remainder, CHARINDEX(',',Remainder)-1)) AS Part, RIGHT(Remainder, LEN(Remainder) - CHARINDEX(',',Remainder)) AS Remainder
    FROM AddressParts
    WHERE CHARINDEX(',', Remainder)>0
    UNION ALL
    SELECT PartNumber + 1 AS PartNumber, LTRIM(Remainder) AS Part, NULL AS Remainder
    FROM AddressParts
    WHERE CHARINDEX(',', Remainder)=0
)
SELECT *
FROM AddressParts





以上查询返回:



Above query returns:

PartNo. Part             Remainder
1	140/3 abcd	 narayana, delhi,pin code-201101
2	narayana	 delhi,pin code-201101
3	delhi	         pin code-201101
4	pin code-201101	 NULL


怎么样



How about

select left(FIELDNAME, 50) as AddressPart1 from TABLENAME


使用udf将地址拆分为3列 [ ^ ]



SQL SERVER - 从电子邮件地址中选择域名 [ ^ ]



在多列中拆分一列 [ ^ ]



希望上面的链接会给你一些想法
Split Address into 3 columns using a udf[^]

SQL SERVER – Selecting Domain from Email Address[^]

splitting one column in multiple columns[^]

Hope above links will give u some idea


这篇关于如何在sql server 2008中将一大量数据列拆分为两列或三列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆