前两篇文章是关于字符串分割的一些经验,今天来谈下字符的合并,更确切的说是字段数据的合并吧。现在很多公司,尤其是工厂,上下班都要刷卡。假如有以下的数据库表,记录着员工上下班的刷卡记录。但是这样直接导出或显示,不太好看,不够直观。下面实现把每个员工每天的刷卡时间横向显示。
插入测试数据:
1 CREATE TABLE CARD_RECORD ( 2 id_ INT IDENTITY(1,1) NOT NULL PRIMARY KEY, 3 card_id INT NOT NULL, 4 swipe_date DATETIME NOT NULL 5 ) 6 GO 7 8 INSERT INTO CARD_RECORD (card_id,swipe_date) 9 SELECT '10001','2015-06-01 08:21' 10 UNION ALL 11 SELECT '10002','2015-06-01 08:22' 12 UNION ALL 13 SELECT '10001','2015-06-01 12:00' 14 UNION ALL 15 SELECT '10002','2015-06-01 12:01' 16 UNION ALL 17 SELECT '10001','2015-06-01 13:00' 18 UNION ALL 19 SELECT '10002','2015-06-01 13:01' 20 UNION ALL 21 SELECT '10002','2015-06-01 18:05' 22 UNION ALL 23 SELECT '10001','2015-06-01 18:12' 24 UNION ALL 25 SELECT '10002','2015-06-02 08:31' 26 UNION ALL 27 SELECT '10001','2015-06-02 08:42' 28 UNION ALL 29 SELECT '10001','2015-06-02 12:10' 30 UNION ALL 31 SELECT '10002','2015-06-02 12:11' 32 UNION ALL 33 SELECT '10001','2015-06-02 13:00' 34 UNION ALL 35 SELECT '10002','2015-06-02 13:11' 36 UNION ALL 37 SELECT '10001','2015-06-02 18:05' 38 UNION ALL 39 SELECT '10002','2015-06-02 18:12' 40 UNION ALL 41 SELECT '10002','2015-06-02 19:34' 42 UNION ALL 43 SELECT '10001','2015-06-03 08:36' 44 UNION ALL 45 SELECT '10002','2015-06-03 08:40' 46 UNION ALL 47 SELECT '10001','2015-06-03 12:20' 48 UNION ALL 49 SELECT '10002','2015-06-03 12:20' 50 UNION ALL 51 SELECT '10001','2015-06-03 12:55' 52 UNION ALL 53 SELECT '10002','2015-06-03 12:56' 54 UNION ALL 55 SELECT '10001','2015-06-03 18:05' 56 GO