我的数据库包含一个“网站”列,其中包含以下数据:
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 个字符。您将通过使用 LEFT
和 CHARINDEX
找到第一个 来获得左边的 N 个字符。
SELECT *
FROM @table
WHERE LEFT(val, CHARINDEX('.', val)) LIKE '%'+@variable+'%'
关于SQL LIKE 语句适用于特定字符之前的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58138822/