我有一个非常简单的问题,我无法解决。我需要这样做:
select distinct * from (1, 1, 1, 2, 5, 1, 6).
谁都能帮忙??
编辑
数据以文本文件的形式来自我们的一个客户。它是完全没有格式的(它是一个很长的文本行),但在Excel中可以这样做。但这对我来说并不实际,因为我需要在sql查询中使用这些值。每次需要运行查询时这样做并不方便。
我有一个非常简单的问题,我无法解决。我需要这样做:
select distinct * from (1, 1, 1, 2, 5, 1, 6).
谁都能帮忙??
编辑
数据以文本文件的形式来自我们的一个客户。它是完全没有格式的(它是一个很长的文本行),但在Excel中可以这样做。但这对我来说并不实际,因为我需要在sql查询中使用这些值。每次需要运行查询时这样做并不方便。
当前回答
要获得由逗号分隔的文本组成的长列表的不同值,最简单的方法是使用find an替换为UNION来获得不同的值。
SELECT 1
UNION SELECT 1
UNION SELECT 1
UNION SELECT 2
UNION SELECT 5
UNION SELECT 1
UNION SELECT 6
应用于由逗号分隔的文本组成的长行
用UNION SELECT查找并替换每个逗号 在语句前面添加一个SELECT
现在您应该有一个可以工作的查询
其他回答
这样的行构造函数只能在SQL Server 2008及以上版本上使用: 你可以用
SELECT DISTINCT *
FROM (
VALUES (1), (1), (1), (2), (5), (1), (6)
) AS X(a)
有关更多信息,请参阅:
官方的女士 http://www.sql-server-helper.com/sql-server-2008/row-value-constructor-as-derived-table.aspx
使用SQL In函数
就像这样:
SELECT * FROM mytable WHERE:
"VALUE" In (1,2,3,7,90,500)
在ArcGIS中工作
如果你需要一个数组,用逗号分隔数组列:
SELECT * FROM (VALUES('WOMENS'),('MENS'),('CHILDRENS')) as X([Attribute])
,(VALUES(742),(318)) AS z([StoreID])
使用GROUP BY可以提供比DISTINCT更好的性能:
SELECT *
FROM
(
VALUES
(1),
(1),
(1),
(2),
(5),
(1),
(6)
) AS A (nums)
GROUP BY A.nums;
要获得由逗号分隔的文本组成的长列表的不同值,最简单的方法是使用find an替换为UNION来获得不同的值。
SELECT 1
UNION SELECT 1
UNION SELECT 1
UNION SELECT 2
UNION SELECT 5
UNION SELECT 1
UNION SELECT 6
应用于由逗号分隔的文本组成的长行
用UNION SELECT查找并替换每个逗号 在语句前面添加一个SELECT
现在您应该有一个可以工作的查询