有人可以帮助我的搜索字符串。我有1-1-1的apth,可能有10-20-1,我只想根据参数长度选择第一个字符,例如,如果我传入10,它将只选择以10开头的Path_String 10或它是1它将选择Path_string从1开始
SELECT ID, AddedBy, Title, Path_String FROM MyTable
WHERE Path_String Like '%' + @Paramter + '%'; this isn't what I want.
DECLARE @dash varchar(2)
set @dash = NCHAR(8211)
DECLARE @Posts Table(PostID int, AddedBy nvarchar(50), Title varchar(100), Path_String varchar(max));
INSERT INTO @Posts
SELECT PostID, AddedBy, Title, Path_String FROM Posts WHERE Path_String Like @threadID + @dash + '%';
SELECT * FROM @Posts
答案 0 :(得分:3)
删除第一个%符号,然后选择从参数开始选择并结束任何结尾。
在考虑之后,它也以下列方式工作。 并且' - '在那里不是问题。
1.完全匹配
declare
@n varchar(3)
set @n='12'
select * from t
where SUBSTRING(t,0,CHARINDEX('-',t)) = @n
t
----------
12-12-12
12-13-14
12-13-14
2.基于参数的长度:
declare
@n varchar(2)
set @n='12'
select * from t
where len(SUBSTRING(t,0,CHARINDEX('-',t))) = len(@n)
t
----------
12-12-12
22-22-22
33-33-33
31-31-31
12-13-14
12-13-14
干杯
答案 1 :(得分:1)
here use string methods to get index and substring to parse. i didn't execute this so fix the error you encounter. atleast this will give you an idea.
SELECT ID, AddedBy, Title, Path_String
FROM MyTable
WHERE Path_String Like @Paramter + '-%';
答案 2 :(得分:1)
你走了。这将解决您的问题.DECLARE @dash varchar(2)
set @dash = NCHAR(8211)
SELECT ID, AddedBy, Title, Path_String
FROM MyTable
WHERE Path_String Like @Paramter + @dash + '%';