再议SQL2005下字符串字段内的字符排序
2009-01-20 23:07
267 查看
再议SQL2005下字符串字段内的字符排序
首选感谢近身剪(http://blog.csdn.net/jinjazz/archive/2009/01/20/3844336.aspx)对我前一篇关于列内字符串间字符排序问题的指正,(汗一个先,如果出现相同字符的问题没注意),我现修正这个问题,有请JJ和大家再次指正。
-----------------------------------------------------------------------
-- Author: happyflystone
-- Date : 2009-01-20 23:11:11
-- Ver: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
--
----------------------------------------------------------------------
--测试数据
DECLARE @T TABLE(COL VARCHAR(10))
INSERT @T SELECT 'AWEAFSA'
INSERT @T SELECT 'DFSA'
INSERT @T SELECT 'DQWF'
--数据生成
;
WITH T
AS
(
SELECT top 26 ROW_NUMBER() OVER (ORDER BY ID) AS n
FROM SYS.SYSOBJECTS
),
T2
AS
(
SELECT col,CHAR(64+N) AS M,N
FROM @T JOIN T
ON CHARINDEX(CHAR(64+N),COL) > 0
)
SELECT
COL,
replace(
(SELECT M as [data()] FROM T2 WHERE COL = T3.COL ORDER BY N FOR XML PATH('')
),' ','') AS NEWCOL
FROM @T T3
--结果
/*
COL NEWCOL
---------- --------
AWEAFSA AAAEFSW
DFSA ADFS
DQWF DFQW
(3 行受影响)
*/
最后再次与梁的比了一下,效率还是高了点
说明:程序仅考虑了26个字母串的处理,嘿嘿如果所有字符都考虑还是用分解串的方法
首选感谢近身剪(http://blog.csdn.net/jinjazz/archive/2009/01/20/3844336.aspx)对我前一篇关于列内字符串间字符排序问题的指正,(汗一个先,如果出现相同字符的问题没注意),我现修正这个问题,有请JJ和大家再次指正。
-----------------------------------------------------------------------
-- Author: happyflystone
-- Date : 2009-01-20 23:11:11
-- Ver: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86)
-- Apr 14 2006 01:12:25
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)
--
----------------------------------------------------------------------
--测试数据
DECLARE @T TABLE(COL VARCHAR(10))
INSERT @T SELECT 'AWEAFSA'
INSERT @T SELECT 'DFSA'
INSERT @T SELECT 'DQWF'
--数据生成
;
WITH T
AS
(
SELECT top 26 ROW_NUMBER() OVER (ORDER BY ID) AS n
FROM SYS.SYSOBJECTS
),
T2
AS
(
SELECT col,CHAR(64+N) AS M,N
FROM @T JOIN T
ON CHARINDEX(CHAR(64+N),COL) > 0
)
SELECT
COL,
replace(
(SELECT M as [data()] FROM T2 WHERE COL = T3.COL ORDER BY N FOR XML PATH('')
),' ','') AS NEWCOL
FROM @T T3
--结果
/*
COL NEWCOL
---------- --------
AWEAFSA AAAEFSW
DFSA ADFS
DQWF DFQW
(3 行受影响)
*/
最后再次与梁的比了一下,效率还是高了点
说明:程序仅考虑了26个字母串的处理,嘿嘿如果所有字符都考虑还是用分解串的方法
相关文章推荐
- (字符串的模式匹配4.7.8)UVA 10008 What's Cryptanalysis?(统计文本中某一个字符的出现的次数,需要从小到大排序&&同次数的按字段序排序)
- Oracle字符串字段内的字符排序
- Oracle字符串字段内的字符排序
- Oracle字符串字段内的字符排序
- 换个思路"SQL2005下字符串字段内的字符排序"
- 换个思路"SQL2005下字符串字段内的字符排序"
- SQL字符串字段内的字符排序
- SQL2005下字符串字段内的字符排序
- [C/C++]_[初级]_[标准库之几种算法库函数的运用,如字符串查找(字符个数查找)、分隔、删除、替换、排序、字符交换位置、大小写转换等等]
- delphi 截取某个字符之前的字段,,如 1234567-9,要分别得到 - 之前的字符串和 - 之后的字符串
- 让字符串变数字怎么办,再排序呢?更何况遇某个字符要取之前的呢!
- 利用 Arrays.sort 字符串 进行排序 完全按字符 排序 忽略字符大小写
- 字符串列表按字符长度排序
- 字符串重新排序,数字字符移到右边,字母字符移到左边,保持字符在原字符串中的前后顺序不变
- 01_进制转换、结构体排序、字符奇校验、字符串连接、实现一个加法器,使其能够输出a+b的值
- Java基础知识强化58:把字符串中的字符进行排序的案例
- 第8周项目2.2-4 试编写算法实现将字符串S中所有字符颠倒过来重新排序 void Trans(SqString *&s, char c1, char c2);
- mysql 按照某个字段括号里的字符串排序
- NYOJ 4 ASCII码排序(字符排序)283 对称排序(字符串排序)
- mysql将数字组成的字符串字段按照字符串数值型的大小进行排序