如何根据值的字符长度从 sql table 获取唯一值

How to get unique value from sql table based on charachter length of value

这里我有两列,例如 sql table 中的示例 column1 和 column2,我想在 column2 的基础上获得唯一值行来自 table 的列值
下面的虚拟示例 table

 Column1             Column2

----------         -------------

 1001                   ab
 1001                   abc
 1001                   abcd
 2001                   wxyz
 2001                   wxy
 2001                   wx

在上面的示例中,值从 a 开始,另一个值从 w 开始,在 Column2
在相同值字符长度的基础上,我想得到如下结果
输出:

 Column1                Column2

----------           -----------

1001                     abcd
2001                     wxyz

在此先感谢您的帮助:)

如果我没理解错的话,你想要最大的长度(你没有说当有两个长度相同时该怎么做)但基本上你想要这样的东西:

SELECT * FROM YourTable
WHERE (column1,len(column2)) IN(select Column1,max(len(column2))
                                FROM YourTable
                                GROUP BY Column1)

如果您正在查看 column2 中的值是否包含在其他行中的某个位置,换句话说:如果您正在查找具有自身唯一的字符组合的行,这可能是您的解决方案:

CREATE TABLE TestTable(Column1 INT,Column2 VARCHAR(100));
INSERT INTO TestTable VALUES
 (1001,'ab')
,(1001,'abc')
,(1001,'abcd')
,(2001,'wxyz')
,(2001,'xyz')
,(2001,'yz');

SELECT *
FROM TestTable
WHERE NOT EXISTS(SELECT 1 
                 FROM TestTable AS x 
                 WHERE x.Column1=TestTable.Column1 
                   AND LEN(x.Column2)>LEN(TestTable.Column2)
                   AND x.Column2 LIKE  '%' + TestTable.Column2  + '%'
                )

DROP TABLE TestTable;