易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL SERVER:select 字符串拼接问题

一、问题
select UserID,LastName,FirstName,UserName from SYSUser
UserID LastName FirstName UserName
------------------------------------------------------
1      A        B        C
2      A1      B1        C1
3      A2      B2        C2
  我想把这个select出来的纪录集拼接成一个字符串。应该怎么实现?例如:
strUserName=C,c2,c2
  二、解决
  SQL code问题描述:无论是在sql 2000,还是在 SQL 2005 中,都没有提供字符串的聚合函数,所以,当我们在处理下列要求时,会比较麻烦:
  有表tb, 如下:
id    value
----- ------
1     aa
1     bb
2     aaa
2     bbb
2     ccc
  需要得到结果:
id     values
------ -----------
1      aa,bb
2      aaa,bbb,ccc
  即, group by id, 求 value 的和(字符串相加)
  方法1、 旧的解决方法
-- 1. 创建处理函数
CREATE FUNCTION dbo.f_str(@id int)
RETURNS varchar(8000)
AS
BEGIN
    DECLARE @r varchar(8000)
    SET @r = ''
    SELECT @r = @r + ',' + value
    from tb
    WHERE id=@id
    RETURN STUFF(@r, 1, 1, '')
END
GO
-- 调用函数
SELECt id, values=dbo.f_str(id)
from tb
GROUP BY id
  方法2、新的解决方法
  1、示例数据
DECLARE @t TABLE(id int, value varchar(10))
INSERT @t SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc'
  2、查询处理
SELECT * from(
    SELECT DISTINCT id
    from @t
)A
OUTER APPLY(
    SELECT
    &nbs


相关文档:

SQL子查询实例

子查询是在一个查询内的查询。子查询的结果被DBMS使用来决定包含这个子查询的高级查询的结果。在子查询的最简单的形式中,子查询呈现在另一条SQL语句的WHERE或HAVING子局内。 
    列出其销售目标超过各个销售人员定额综合的销售点。
SELECT CITY
from OFFICES
WHERE TARGET&nbs ......

vs2005中无法连接SQL问题(转)

vs2005中无法连接SQL问题
最近在研究ASP.NET,在安装VS2005和SQL上,问题多多啊,卡了我很多天,最后在查阅一堆资料和重装无数次系统之后,终于研究出为什么我不能连接数据库的问题了,解决方法如下:
  (1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连 ......

求助SQL SERVER 2008连接问题

测试机test安装的是windows server2008+sql server 2008,数据库安装成功。可以连接局域网内其他机器的数据库(其他机器的数据库为SQL 2005)。但是网内其他机器访问test时,无法连接,报错。信息为:在建立与服务器的连接时出错。在连接到SQL SERVER 2005时,在默认的设置下SQL SERVER 不允许进行远程连接可能会导致次失败 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号