-- 测试数据
CREATE TABLE tb(col varchar(100))
INSERT tb SELECT 'abced'
UNION ALL SELECT 'ilieb'
UNION ALL SELECT 'lkjiioe'
UNION ALL SELECT 'ia0lka'
GO
-- 统计: 字段信息中有 a的 数据是多少,有 b的数据是多少,有e的数据是多少 依次类推....
SELECT TOP 8000
id = identity(int,1,1)
INTO # FROM syscolumns a, syscolumns b
SELECT id1 = SUBSTRING(a.col, b.id, 1), id2 = COUNT(*)
FROM tb a, # b
WHERE LEN(a.col) >= b.id
GROUP BY SUBSTRING(a.col, b.id, 1)
ORDER BY SUBSTRING(a.col, b.id, 1)
DROP TABLE #
GO
/*--结果
id1 id2
---- -----------
0 1
a 3
b 2
c 1
d 1
e 3
i 5
j 1
k 2
l 3
o 1
(所影响的行数为 11 行)
--*/
-- 如何取到字段中任何一个字符都不相同的数据
SELECT TOP 8000
id = identity(int,1,1)
INTO # FROM syscolumns a, syscolumns b
SELECT * FROM tb
WHERE col NOT IN(
SELECT col
FROM(
SELECT a.col, id1 = SUBSTRING(a.col, b.id, 1)
FROM tb a, # b
WHERE LEN(a.col) >= b.id
)A GROUP BY col, id1
HAVING COUNT(*) > 1)
DROP TABLE #
GO
/*--结果
col
--------------------
abced
(所影响的行数为 1 行)
--*/
-- 删除测试
DROP TABLE tb