作者mathrew (Joey)
看板Database
标题[SQL ] 如何在查询时, 显示某个字元区段?
时间Thu Feb 9 21:19:36 2012
我的资料内容如下:
A | B | C |
---------------------------------------
123,456,10.1.1.1 | joey | iphone |
231,353,10.1.1.2 | steve | android |
214,593,10.1.1.3 | jacky | windows |
A 栏位内容只想查询第二个","以後的资料, 也就是呈现结果会变成如下:
A | B | C |
---------------------------------------
10.1.1.1 | joey | iphone |
10.1.1.2 | steve | android |
10.1.1.3 | jacky | windows |
单纯用 T-SQL 有办法做得到吗?
还是需要 BCP 出来後 用 Shell Script 去处理?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.189.132
1F:→ fantasyj:固定a栏位第7码後吗 substr(a,7) as a 02/09 21:40
2F:→ fantasyj:错了.. substr(a, 9) as a 02/09 21:41
楼上的方式 会试看看, 不过又想到另一个问题, 原始资料如果是这样呢?
A | B | C |
---------------------------------------
123,1,10.1.1.11 | joey | iphone |
231,12,10.1.1.101 | steve | android |
214,123,10.1.1.3 | jacky | windows |
也就是第二个"," 前後 都是没有固定有多少字元 , 那麽 T-SQL 要怎麽写, 感恩!!
※ 编辑: mathrew 来自: 122.116.189.132 (02/10 07:53)
3F:推 TeemingVoid:以 CHARINDEX(',', A, 1) 可找到第一个逗号位置, 02/10 10:25
4F:→ TeemingVoid:连用两次即可找出第二个逗号位置: 02/10 10:25
5F:→ TeemingVoid:CHARINDEX(',', A, CHARINDEX(',', A, 1) + 1) 02/10 10:25
6F:→ TeemingVoid:例如: 02/10 10:26
7F:→ TeemingVoid:SELECT SUBSTRING(A, CHARINDEX(',', A, 02/10 10:26
8F:→ TeemingVoid: CHARINDEX(',', A, 1) + 1) + 1, 999) from ... 02/10 10:26
9F:→ mathrew:非常感恩, 等等去试试 !!!! 02/10 16:51