我的要求是:我需要提取所有公司的数据,这些数据在表中有相似的名称(前3个单词应该出现在名称中,可以在中间)作为输入公司名称。
我的查询对于name有3个以上单词的数据工作正常,但是对于小于或等于3个单词的数据它就失败了。
我不知道如何在where子句中加入条件。
我的问题如下
select regno,name from ereg
where
(name like '%' +(
SELECT SUBSTRING(name, 0, CHARINDEX(' ', name, CHARINDEX(' ', name, CHARINDEX(' ', name, 0)+1)+1)) matchingwrd
FROM ereg where regno='C2113-UPD01')+'%')
脚本如下
CREATE TABLE ereg(
regnoINT, name VARCHAR(50)
);
INSERT INTO ereg (regno,name)
values
('C2113-UPD01','future company Ltd'),
('C2223-UPD01','MY future company Ltd Corp'),
('C2113-UPD01','Prime Private Furnishings housing Ltd '),
('C26903-UPD01','My Prime Private Furnishings Service '),
例如,它对regno='c2113-upd01'工作正常,并给出输出-->>'c26903-upd01','my prime prime private venturations service'
但如果输入为“c2113-upd01”,我的查询将失败,无法获取“c223-upd01”公司数据
1条答案
按热度按时间rlcwz9us1#
表数据插入脚本、数据和脚本似乎都不是从工作版本获取的。我得把一切都打扫干净。
为了得到这三个字,我在名字前面加了一个空格:你的询问还是给我带来了麻烦。但我是这样做的
这是小提琴