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
相关文档:
[code=SQL][/code]
--语 句 功 能
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据 ......
昨天我的SQL(Microsoft SQL Server 2005 )登录不上去了,原来是出现了几个小问题,现在记录一下我的解决这几个情况的办法。(解决方法有很多种,这些只是我的解决方法,仅供参考)
查找问题的过程:(注:用windows账号还是可以登录的)
第一步:启动所有与SQL有关的服务,问题依旧;
第二步:查看windows防火墙,被默 ......
linq to sql 在插入值的时候还是很方便。有时候我们需要在插入一个新的实体之后得到那个实体的主键ID的值,这个ID当然必须是自增。一段时间我一直认为直接使用linq to sql的插入机制是不可以在做到的,所以只有使用存储过程的,具体可以查看这篇文章:http://blog.benhall.me.uk/2008/01/custom-insert-logic-with-linq-to- ......
DECLARE @temp TABLE(
id INT,
[name] VARCHAR(50),
class VARCHAR(50)
)
INSERT INTO @temp
SELECT 1,'a','A'
UNION ALL SELECT 2,'b','C'
UNION ALL SELECT 3,'c','B'
UNION ALL SELECT 4,'d','C'
UNION ALL SELECT 5,'e','B'
UNION ALL SELECT 6,'f','A'
SELECT * from @temp AS _temp WHERE [name] IN
(
......
SQL 2005远程访问的设置
2009-02-27 08:13
1、首先打开SQL Server 外围应用配置器,点击“服务和连接的外围应用配置器”,选择数据库→远程服务,点上本地连接和远程连接,再点上同时使用tcp/ip和named pipes
2、打开SQL Server Configuration Manager,SQL Server 2005网络配置,将TCP/IP启用了。
3、一 ......