应用场景:将员工不同的职位合并到同一列
2010-09-03 13:48
211 查看
/*
应用场景:将员工不同的职位合并到同一列
*/
IF OBJECT_ID('A') IS NOT NULL
DROP TABLE A
GO
CREATE TABLE A
(
NAME VARCHAR(20),
STATU VARCHAR(50)
)
GO
INSERT INTO A
SELECT '小张','普通员工'
UNION ALL
SELECT '小张','组长'
UNION ALL
SELECT '小二','经理'
UNION ALL
SELECT '小三','老板'
UNION ALL
SELECT '小三','员工'
GO
--方法一
SELECT DISTINCT NAME,STATUS=RIGHT(STATUS,LEN(STATUS)-1)
FROM
(
SELECT *,
STATUS=(SELECT ','+LTRIM(STATU) FROM A WHERE NAME=T.NAME FOR XML PATH(''))
FROM A T
) A
GO
--方法二
CREATE TABLE #A
(
ID INT IDENTITY(1,1),
NAME VARCHAR(20),
STATU1 VARCHAR(50),
STATU2 VARCHAR(50)
)
GO
INSERT INTO #A(NAME,STATU1,STATU2)
SELECT NAME,STATU1=STATU,STATU2=(SELECT STATU FROM A WHERE NAME=C.NAME AND STATU<>C.STATU)
FROM A C
GO
SELECT NAME,STATU1+CASE WHEN STATU2 IS NULL THEN '' ELSE ','+STATU2 END
FROM #A C
WHERE NOT EXISTS(SELECT * FROM #A WHERE ID<C.ID AND NAME=C.NAME AND STATU1=C.STATU2 AND STATU2=C.STATU1)
GO
应用场景:将员工不同的职位合并到同一列
*/
IF OBJECT_ID('A') IS NOT NULL
DROP TABLE A
GO
CREATE TABLE A
(
NAME VARCHAR(20),
STATU VARCHAR(50)
)
GO
INSERT INTO A
SELECT '小张','普通员工'
UNION ALL
SELECT '小张','组长'
UNION ALL
SELECT '小二','经理'
UNION ALL
SELECT '小三','老板'
UNION ALL
SELECT '小三','员工'
GO
--方法一
SELECT DISTINCT NAME,STATUS=RIGHT(STATUS,LEN(STATUS)-1)
FROM
(
SELECT *,
STATUS=(SELECT ','+LTRIM(STATU) FROM A WHERE NAME=T.NAME FOR XML PATH(''))
FROM A T
) A
GO
--方法二
CREATE TABLE #A
(
ID INT IDENTITY(1,1),
NAME VARCHAR(20),
STATU1 VARCHAR(50),
STATU2 VARCHAR(50)
)
GO
INSERT INTO #A(NAME,STATU1,STATU2)
SELECT NAME,STATU1=STATU,STATU2=(SELECT STATU FROM A WHERE NAME=C.NAME AND STATU<>C.STATU)
FROM A C
GO
SELECT NAME,STATU1+CASE WHEN STATU2 IS NULL THEN '' ELSE ','+STATU2 END
FROM #A C
WHERE NOT EXISTS(SELECT * FROM #A WHERE ID<C.ID AND NAME=C.NAME AND STATU1=C.STATU2 AND STATU2=C.STATU1)
GO
相关文章推荐
- 应用场景:将项目组的员工职位合并到同一列
- JavaScript中this的用法及this在不同应用场景的作用解析
- 我们的应用场景与http的不同
- Redis不同数据类型命令使用及应用场景
- shell图形化监控网络流量 网络流量的监控工具有很多,如:Mrtg、Cacti、Zabbix等等,他们都有着各自的特点,不同的侧重,只为适合不同的应用场景的各种特殊需求。除了网络流量监控工具以外,还
- 站在不同的角度看权限问题、不同的应用场景看待权限问题
- 不同应用场景的10个Linux面试问题与解答
- [转]WCF技术的不同应用场景及其实现分析
- 多线程多进程协程的区别和不同的应用场景
- WCF技术的不同应用场景及其实现分析
- 熟练掌握js中this的用法,解析this在不同应用场景的作用
- 不同应用场景的10个Linux面试问题与解答
- 站在不同的角度看权限问题、不同的应用场景看待权限问题
- SQL 同一张表中相同字段的内容合并为一条记录(不同字段的那一列每个记录后面加逗号)
- 不同应用场景的10个Linux面试问题与解答
- WCF技术的不同应用场景及其实现分析
- 区分 #{} 和 ${}的不同应用场景
- rsync与FTP(vsftpd)在不同工作场景中的应用
- 站在不同的角度看权限问题、不同的应用场景看待权限问题
- 2行数据只有一列数据不同(不是主键),怎么合并成1行?