SQL LIKE 语句适用于特定字符之前的所有内容

标签 sql sql-server database sql-like

我的数据库包含一个“网站”列,其中包含以下数据:

foo1.web.com
foo2.gov
doo3.shoo.net
baa.com
baa2.shoo.com

我想做一个 select 语句来获取变量之类的所有内容,但仅限于第一个句点,我想忽略句点之后的所有内容:

DELCARE @variable varchar(MAX);
SET @variable = 'oo';

SELECT * WHERE website LIKE '%' + @variable + '%' --(but only apply like statement up to the first .)

所以我得到的结果是:

foo1.web.com
foo2.gov
doo3.shoo.net

但它会漏掉

baa2.shoo.com

提前感谢您的帮助!

编辑: 使用 SQL Server

最佳答案

对于 SQL Server,您只能查看 oo URL 的左侧 N 个字符。您将通过使用 LEFTCHARINDEX 找到第一个 来获得左边的 N 个字符。

SELECT * 
FROM @table
WHERE LEFT(val, CHARINDEX('.', val)) LIKE '%'+@variable+'%'

关于SQL LIKE 语句适用于特定字符之前的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58138822/

相关文章:

python - Django 将表迁移到新数据库

php - 无法插入PHP到MYSQL数据库

php - 在MySQL数据库中保存图片路径,然后拉取该数据显示图片?

sql-server - ASP.NET/SSAS/SQL Server - 现有连接被远程主机强制关闭

与第一和第二高薪水相关的SQL查询

c# - SQL Server CLR 线程

sql - 为多列比较强制执行索引扫描

sql - 如何在 MS Access 查询中指定默认值?

sql - 计算当天之间的总天数 (SQL)

SQL 服务器 : How can a table scan be so expensive on a tiny table?