我的表名是字符串。我需要创建一个sql语句,搜索子节点到节点而不向子节点查找子节点。是否可以使用LIKE和一些通配符来实现此目的?您可以在下面根据我的搜索字符串看到我需要获得的结果的一些示例。
搜索字符串是/ home 然后应该返回以下条目
/home/something
/home/somethingElse
but not
/home/something/foo
/home/something/bar
/home/somethingElse/foo
但是如果搜索字符串是/ home / something
These should be returned
/home/something/foo
/home/something/bar
答案 0 :(得分:2)
SELECT name FROM table
WHERE name LIKE '/home/%' AND name NOT LIKE '/home/%/%'
应过滤掉其下的第二级节点。
答案 1 :(得分:1)
我可能会搜索除实际关键字之外的斜杠数量。所以第一个用1-2 / s来搜索/ home
第二个是/ home /有2-3个斜线的东西。
我没有面向我的sql,但我会为你准备一些示例代码。
编辑:
CREATE FUNCTION [dbo].[ufn_CountChar] ( @pInput VARCHAR(1000), @pSearchChar CHAR(1) )
RETURNS INT
BEGIN
RETURN (LEN(@pInput) - LEN(REPLACE(@pInput, @pSearchChar, '')))
END
GO
这个小函数可以很好地计算字符串中的斜杠数。
享受
希望这有帮助, 欢呼声,