Sql 是否有更简单的方法使用'组合多个标准;比如';

Sql 是否有更简单的方法使用'组合多个标准;比如';,sql,union,sql-like,Sql,Union,Sql Like,我可以使用Union创建查询。然而,我想知道是否有一个更简单的方法来创建相同的结果?我试过在('abc%','def%')中使用,和类似('abc%','def%')的,但是在分隔括号中两个单词的逗号附近出现了语法错误 这是我到目前为止所拥有的 select distinct a.case,a.person,a.personid,b.plans,a.code,a.action,cast(a.datea as date) as datea,cast(a.dateb as date) as date

我可以使用
Union
创建查询。然而,我想知道是否有一个更简单的方法来创建相同的结果?我试过在('abc%','def%')中使用
和类似('abc%','def%')的
但是在分隔括号中两个单词的逗号附近出现了语法错误

这是我到目前为止所拥有的

select distinct a.case,a.person,a.personid,b.plans,a.code,a.action,cast(a.datea as date) as datea,cast(a.dateb as date) as dateb,a.updatecode
from table(nolock) a

inner join table(nolock) b on a.column=b.column

where updatecode = 'invalid'

and code like ('pr%') and datea >= '2016-09-16' and len (b.plans) = 16

union

select distinct a.case,a.person,a.personid,b.plans,a.code,a.action,cast(a.datea as date) as datea,cast(a.dateb as date) as dateb,a.updatecode

from table(nolock) a

inner join table(nolock) b on a.column=b.column

where updatecode = 'invalid'

and code like ('sea%') and datea >= '2016-09-16' and len (b.plans) = 16
您可以使用:

(code like 'pr%' OR code like 'sea%')
您可以使用:

(code like 'pr%' OR code like 'sea%')

我不相信有一个好的、干净的解决方案,但您可以用
字符串连接多个
查询,如:

 select * from config.devices where displayname like 'Im%' or displayname like 'In%'

这将返回所有以“Im”或“In”开头的结果。

我不相信有一个好的、外观整洁的解决方案,但您可以使用
字符串连接多个
查询,如:

 select * from config.devices where displayname like 'Im%' or displayname like 'In%'
这将返回所有以“Im”或“In”开头的结果。

尝试以下操作:

select distinct a.case,a.person,a.personid,b.plans,a.code,a.action,cast(a.datea as date) as datea,cast(a.dateb as date) as dateb,a.updatecode
from table(nolock) a
inner join table(nolock) b on a.column=b.column
where updatecode = 'invalid'
and (code like ('pr%') OR code like ('sea%'))
and datea >= '2016-09-16' 
and len (b.plans) = 16
试试这个:

select distinct a.case,a.person,a.personid,b.plans,a.code,a.action,cast(a.datea as date) as datea,cast(a.dateb as date) as dateb,a.updatecode
from table(nolock) a
inner join table(nolock) b on a.column=b.column
where updatecode = 'invalid'
and (code like ('pr%') OR code like ('sea%'))
and datea >= '2016-09-16' 
and len (b.plans) = 16

其中updatecode='invalid'和(code-like('pr%')或code-like('sea%')和datea>='2016-09-16'和len(b.plans)=16
无需组合选择distinct和union的可能重复项。
其中updatecode='invalid'和(code-like('pr%')或code-like('sea%'))和datea>='2016-09-16'和len(b.plans)=16
无需将select distinct和union组合的可能重复项。