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 --从数据 ......
Tuning an Application / Reducing Load
If your whole application is performing suboptimally, or if you are attempting to
reduce the overall CPU or I/O load on the database server, then identifying
resource-intensive SQL involves the following steps:
1. Determine which period in the day you would ......
vs2005中无法连接SQL问题
最近在研究ASP.NET,在安装VS2005和SQL上,问题多多啊,卡了我很多天,最后在查阅一堆资料和重装无数次系统之后,终于研究出为什么我不能连接数据库的问题了,解决方法如下:
(1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连 ......
一.数据完整性
就是为了防止数据库中存在不符合语义规定的数据,和防止因输入输出错误而造成的无效操作或者错误信息而提出的,制定的一些对元组、属性和域的一些约束和规定。
解决办法由:规则,默认值,约束和触发器等。
二.约束
......
数据库字典包括表结构(分2K和2005)、索引和主键.外键.约束.视图.函数.存储过程.触发器.规则。可以在企业管理器、查询分析器中简单执行,直接了当的查出SQL2K及SQL2005的所有数据字典,方便文档的编写,希望对大家有帮助。
1. SqlServer2000数据库字典--表结构.sql
SELECT TOP 100 PERCENT --a.id,
& ......