首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在SQL Server中查找当前值以外的值?

如何在SQL Server中查找当前值以外的值?
EN

Stack Overflow用户
提问于 2019-04-02 07:57:28
回答 2查看 469关注 0票数 -2

在SQL Server中,如何从指定数据以外的列中获取数据。例如,我有一个列,数据"MySQL,服务器,数据库“在一行中。

现在,我想要查看该列中是否存在除MySQL之外的其他值。

我尝试使用Not Like,但没有成功。

例如TableA:

代码语言:javascript
复制
id |   Code   
---+---------------------------
 1 |   mysql,sqlserver,database    
 2 |   mysql    
 3 |   sqlserver,database 
 4 |   mysql,mysql

在这里,我想看看该列是否有"mysql“以外的数据,比如id:1有"mysql”以外的数据,但id:2有"mysql“但没有"mysql”以外的数据。最后,如果除了"mysql“之外没有任何数据,我想返回null或空白值。

到目前为止我使用的代码:

代码语言:javascript
复制
select code from tableA where code not like '%mysql%'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-02 08:09:54

如果你能提供一些数据和代码,这会很有帮助。这是可行的(就我所理解的问题而言):

代码语言:javascript
复制
CREATE TABLE #x (object_type varchar(50))
INSERT #x (object_type) VALUES ('MySQL'), ('Server'), ('Database')
SELECT * FROM #x WHERE object_type <> 'MySQL'

根据最新的问题,我认为你在寻找:

代码语言:javascript
复制
CREATE TABLE #x (id int identity(1, 1), code varchar(50))
INSERT #x (code) VALUES ('mysql,sqlserver,database'), ('mysql'), ('sqlserver,database'), ('mysql,mysql')

SELECT *
FROM #x
WHERE id IN (
    SELECT id
    FROM #x  
        CROSS APPLY string_split(code, ',')
    WHERE value <> 'mysql'
)

然而,正如@Eric Brandt上面所问的,不清楚您是否希望选择行id = 4。

票数 1
EN

Stack Overflow用户

发布于 2019-04-02 13:27:05

注意:STRING_SPLIT仅适用于SQL Server 2016或更高版本。如果您使用的是较早版本,请进行搜索,有许多类似的实现

代码语言:javascript
复制
declare @table table
(
    id  int identity,
    Code    varchar(30)
)

insert into @table select 'mysql,sqlserver,database'
insert into @table select 'mysql'
insert into @table select 'sqlserver,database'
insert into @table select 'mysql,mysql'
insert into @table select ''
insert into @table select NULL
select  *
from    @table t
where   t.Code  is null
or  exists  
    (
        select  *
        from    string_split(t.Code, ',')
        where   value   <> 'mysql'
    )

/*  RESULT
    1   mysql,sqlserver,database
    3   sqlserver,database
    5   
    6   NULL
*/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55465111

复制
相关文章

相似问题

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