我遇到这种情况:
CREATE TABLE ProvaSrl
(id int IDENTITY(1,1) PRIMARY KEY,
Ragsoc varchar(20))
INSERT ProvaSrl VALUES ('pippo spa'),
('pluto srl'),
('paperino s.r.l'),
('minnie S.R.L'),
('topolino SRL')
SELECT * FROM dbo.ProvaSrl
WHERE ragsoc LIKE
我想查找s.r.l
列中包含srl
,SRL
,S.R.L
或RagSoc
的所有记录。我有不区分大小写的数据库。
我可以使用LIKE
运算符吗?
答案 0 :(得分:0)
使用此
SELECT * FROM dbo.ProvaSrl WHERE ragsoc LIKE '%s.r.l%'
union
SELECT * FROM dbo.ProvaSrl WHERE ragsoc LIKE '%srl%'
union
SELECT * FROM dbo.ProvaSrl WHERE ragsoc LIKE '%S.R.L%'
答案 1 :(得分:0)
select *
from dbo.ProvaSrl
where ragsoc like '%s.r.l%'
or ragsoc like '%srl%'
对于大写和小写都不需要LIKE
,因为该列被认为是不区分大小写的。
答案 2 :(得分:0)
SELECT * FROM dbo.ProvaSrl
WHERE upper(ragsoc) LIKE '%S.R.L%'
OR upper(ragsoc) LIKE '%SRL%'
答案 3 :(得分:0)
如果您需要这些特定字符串,请使用or
:
select p.*
from dbo.ProvaSrl
where ragsoc COLLATE Latin1_General_CS_AS like '%s.r.l' COLLATE Latin1_General_CS_AS or
ragsoc COLLATE Latin1_General_CS_AS like '%srl' COLLATE Latin1_General_CS_AS or
ragsoc COLLATE Latin1_General_CS_AS like '%SRL' COLLATE Latin1_General_CS_AS or
ragsoc COLLATE Latin1_General_CS_AS like 'S.R.L.' COLLATE Latin1_General_CS_AS ;
我猜您只想查看ragsoc
列的结尾。如果它们可以出现在任何地方,请在模式的末尾添加一个额外的通配符。
这使用区分大小写的排序规则来完全匹配问题中提到的四个字符串。