这里我有两列,例如下面的示例column1& sql表中的column2,我希望根据表中的 column2 列值获取唯一值行
下面是虚拟表的例子
Column1 Column2
---------- -------------
1001 ab
1001 abc
1001 abcd
2001 wxyz
2001 wxy
2001 wx
以上示例值从 a &从列2 中的 w 开始的另一个值
在相同值的字符长度的基础上,我想得到如下的结果
的输出:
Column1 Column2
---------- -----------
1001 abcd
2001 wxyz
先感谢您的帮助:)
答案 0 :(得分:2)
如果我理解正确,你想要最长的长度(当有两个长度相同时你没有说要做什么),但基本上你想要这样的东西:
SELECT * FROM YourTable
WHERE (column1,len(column2)) IN(select Column1,max(len(column2))
FROM YourTable
GROUP BY Column1)
答案 1 :(得分:1)
如果您正在查看第2列中的值是否包含在其他行中的某个位置,换句话说:如果您要查找的行包含自己唯一的字符组合,这可能是您的解决方案:
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;