Dus*_*sty 39 sql sql-server wildcard in-function
因为我认为这应该是一个基本问题,我知道这个问题可能已被提出,但我无法找到它.我可能要获得我的同伴压力徽章,但无论如何我都会问:
在使用IN时,在SQL Server中是否有一种我不知道使用通配符%的方法.
我意识到我可以使用OR之类的:
select *
from jobdetails
where job_no like '0711%' or job_no like '0712%'
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我可以使用子查询,如:
select *
from jobdetails
where job_no in (select job_no from jobs where job_id = 39)
Run Code Online (Sandbox Code Playgroud)
但我希望做以下事情:
select *
from jobdetails
where job_no in ('0711%', '0712%')
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它使用百分号作为字符而不是通配符,因此不返回任何行.我现在只需要使用一堆OR,但我知道必须有更好的方法.你用什么方法呢?
Aar*_*ton 24
怎么样:
WHERE LEFT(job_no, 4) IN ('0711', '0712', ...)
Run Code Online (Sandbox Code Playgroud)
Gal*_*boy 11
这样的事怎么样?
declare @search table
(
searchString varchar(10)
)
-- add whatever criteria you want...
insert into @search select '0711%' union select '0712%'
select j.*
from jobdetails j
join @search s on j.job_no like s.searchString
Run Code Online (Sandbox Code Playgroud)
小智 10
我想我可以用简单的形式解决这个调查的创始人想要的问题.它适用于我,实际上这就是我在这里开始的原因.我相信只需在列中使用括号,如'%text%'和OR
s 一起使用它就可以了.
select * from tableName
where (sameColumnName like '%findThis%' or sameColumnName like '%andThis%' or
sameColumnName like '%thisToo%' or sameColumnName like '%andOneMore%')
Run Code Online (Sandbox Code Playgroud)
你可以尝试这样的事情:
select *
from jobdetails
where job_no like '071[12]%'
Run Code Online (Sandbox Code Playgroud)
不完全是你问的问题,但它具有相同的效果,并且在其他方面也很灵活:)
归档时间: |
|
查看次数: |
95519 次 |
最近记录: |