给出下表:
Url
--------------
Id Url
1 foo.com
2 www.foo.com
3 bar.com
4 baz.com
5 www.baz.com
我该如何只选择没有相应记录且带有“ www”的URL。字首? (在此示例中,期望的结果将是仅返回bar.com
。)
答案 0 :(得分:1)
您可以使用not exists
:
select t.*
from t
where t.url not like 'www.%' and
not exists (select 1 from t t2 where 'www.' + t.url = t2.url);
Here是一个SQL提琴。
答案 1 :(得分:1)
您可以使用replace和group by过滤单个结果
select replace( Url 'www.', '')
from my_table
group by replace( Url 'www.', '')
having count(*) = 1
答案 2 :(得分:0)
使用CHARINDEX实现此目标的另一种方法:
updateSelectOptionValue(index, value) {
this.product = Object.assign({}, this.product, this.product);
},
答案 3 :(得分:0)
您也可以像在那儿一样
select t.*
from as t
outer apply (
select 1 as IsExistWithWWW
from t as t2
where lower(t2.url) = lower(replace(t.url, 'www.', ''))
) as a
where lower(t.url) not like 'www.%'
and a.IsExistWithWWW is null
使用较低的值可使脚本更强大