以指定的形式显示sql的查询



DECLARE @test TABLE(iid INT,sname VARCHAR(20),sother VARCHAR(50))
INSERT INTO @test(iid,sname,sother)
SELECT 1,'张三','蓝球' UNION ALL  --union all 是不检查有无重复
SELECT 2,'张三','电脑' UNION ALL
SELECT 3,'李四','乒乓球' UNION 
SELECT 4,'李四','羽毛球'

DECLARE @result TABLE(sname VARCHAR(20),sother VARCHAR(100))
DECLARE @i INT,@count INT
SELECT @i = 1,@count = COUNT(*) FROM @test


WHILE(@i <= @count)
BEGIN
 UPDATE t SET t.sother = ISNULL(t.sother + '、','') + tt.sother
 FROM @result AS t,@test AS tt
 WHERE tt.iid = @i AND t.sname = tt.sname



 IF @@ROWCOUNT = 0  --查出上一次操作返回的行记录数  如果在result表里有记录,那么就在这个记录的后面增加,如果没有就新建一个记录插入到result表里(插入由下面的语句执行)。
 BEGIN
  INSERT INTO @result(sname,sother)
  SELECT t.sname,t.sother 
  FROM @test AS t
  WHERE t.iid = @i
 END
 SELECT @i = @i + 1
END





表的记录为


要显示的等式为:



你可能感兴趣的:(sql)