回 帖 发 新 帖 刷新版面

主题:大虾

A.ID    A.MS
6955    基金配售   
6957    NULL
6959    上网定价
2752    法人配售
2752    上网定价
2752    基金配售
2754    法人配售
2754    上网定价
2756    法人配售
把A表变成B表 

B.ID   B.MS
6955    基金配售   
6957    NULL
6959    上网定价
2752    法人配售,上网定价,基金配售
2754    法人配售,上网定价
2756    法人配售
数据还有很多这只是部分 
那位大虾 晓得 如何做?

回复列表 (共4个回复)

沙发

select distinct MS, ID into B from A

板凳

看清楚在说

3 楼


SELECT * INTO A1 FROM A

CREATE TABLE AD
(
ID    INT    NULL,
MS    VARCHAR(30)    NULL
)

INSERT INTO AD
    SELECT DISTINCT ID,'' AS MS FROM A1
        GROUP BY ID

----
DECLARE    @AA1    INT
DECLARE    @AA2    INT
DECLARE    @AA3    INT
DECLARE    @AA4    VARCHAR(30)

SET    @AA1 = 1
SET    @AA2 = (SELECT COUNT(ID) FROM A1)
WHILE @AA1 <= @AA2
BEGIN
    SET @AA3 = (SELECT TOP 1 ID FROM A1)
    SET @AA4 = (SELECT TOP 1 MS FROM A1)
    UPDATE AD
    SET MS = MS + @AA4 + ','
        WHERE AD.ID = @AA3
    DELETE A1
        WHERE ID = @AA3 AND MS = @AA4
    SET @AA1 = @AA1 + 1
END
----

4 楼

楼上的应该是可以!

我来回复

您尚未登录,请登录后再回复。点此登录或注册