日期:2014-05-18  浏览次数:20391 次

请大家帮忙,如何将一个数据字段内的数据分离?
有一数据表要分析,现在的一个难题,是如何将某个字段的某条数据,根据需要选出来,并写入新的字段。

这个不知道怎么写。。谢谢。。

------解决方案--------------------
这是个拆分字符串的例,看对你是否有用?


CREATE TABLE A(id INT,country VARCHAR(100))
INSERT A
SELECT 1, '中国;日本;韩国 ' UNION ALL
SELECT 2, '美国;意大利;法国 ' UNION ALL
SELECT 3, '德国 '
SELECT * FROM A

-- 建立一个辅助的临时表就可以了
SELECT TOP 8000 id = identity(int,1,1)
INTO # FROM syscolumns a, syscolumns b


SELECT
A.ID,
COUNTRY = SUBSTRING(A.COUNTRY, B.ID, CHARINDEX( '; ', A.COUNTRY + '; ', B.ID) - B.ID)
FROM A, # B
WHERE SUBSTRING( '; ' + a.COUNTRY, B.id, 1) = '; '
ORDER BY 1,2
GO

DROP TABLE A,#

id country
----------- ----------------
1 中国;日本;韩国
2 美国;意大利;法国
3 德国

(所影响的行数为 3 行)

ID COUNTRY
----------- ---------
1 韩国
1 日本
1 中国
2 法国
2 美国
2 意大利
3 德国

(所影响的行数为 7 行)