首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从SQL Server的值列表中进行选择

如何从SQL Server的值列表中进行选择
EN

Stack Overflow用户
提问于 2009-10-14 08:18:49
回答 16查看 508.3K关注 0票数 270

我有一个很简单的问题,我不能解决。我需要这样做:

代码语言:javascript
复制
select distinct * from (1, 1, 1, 2, 5, 1, 6).

谁都能帮上忙??

编辑

数据是以文本文件的形式从我们的一个客户那里获得的。它是完全无格式的(只有一行非常长的文本),但在Excel中也可以这样做。但这对我来说并不实用,因为我需要在sql查询中使用这些值。每次需要运行查询时都这样做是不方便的。

EN

回答 16

Stack Overflow用户

回答已采纳

发布于 2009-10-14 08:24:08

要获得一长串逗号分隔的文本的不同值,最简单的方法是使用find an replace with UNION来获取不同值。

代码语言:javascript
复制
SELECT 1
UNION SELECT 1
UNION SELECT 1
UNION SELECT 2
UNION SELECT 5
UNION SELECT 1
UNION SELECT 6

应用于逗号分隔的长文本行

  • 查找并替换语句前的每个逗号UNION SELECT
  • Add a SELECT

现在,您应该有了一个可以工作的查询

票数 100
EN

Stack Overflow用户

发布于 2011-09-02 22:39:52

仅在SQL Server 2008及更高版本上提供以下形式的行构造器:

你可以使用

代码语言:javascript
复制
SELECT DISTINCT *
FROM (
  VALUES (1), (1), (1), (2), (5), (1), (6)
) AS X(a)

有关详细信息,请参阅:

票数 515
EN

Stack Overflow用户

发布于 2016-01-30 04:48:35

一般而言:

代码语言:javascript
复制
SELECT 
  DISTINCT 
      FieldName1, FieldName2, ..., FieldNameN
FROM
  (
    Values
        ( ValueForField1, ValueForField2,..., ValueForFieldN ),
        ( ValueForField1, ValueForField2,..., ValueForFieldN ),
        ( ValueForField1, ValueForField2,..., ValueForFieldN ),
        ( ValueForField1, ValueForField2,..., ValueForFieldN ),
        ( ValueForField1, ValueForField2,..., ValueForFieldN )
  ) AS TempTableName ( FieldName1, FieldName2, ..., FieldNameN )

在您的案例中:

代码语言:javascript
复制
Select 
  distinct
  TempTableName.Field1 
From 
  (
  VALUES
    (1), 
    (1), 
    (1), 
    (2), 
    (5), 
    (1), 
    (6)
  ) AS TempTableName (Field1)
票数 113
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1564956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档