J'ai vu cette question mais pas posée comme ceci, s'il y a une question comme s'il vous plaît le lier.
J'utilise T-SQL et j'écris une procédure stockée.
Donc, j'ai un @masterssortingng
disons
'www.apple.com'
et un @slavessortingng
'www.apple.com/subdirectory'
J'utilise le code ci-dessous pour voir si je devrais append des lignes à la database.
Ce que je veux faire est d'append des lignes à la database si elle passe cette clause.
IF NOT EXISTS (SELECT ranking_date, ranking_keyword, ranking_id_doman FROM [dbo].[t_ranking] WHERE ranking_id_doman = @domanID AND ranking_keyword = @keyword AND ranking_searchesincluded = @searchesincluded) AND @masterssortingng like @slavessortingng +'%'
@masterssortingng
rest le même tout au long du process, mais @slavessortingng
change pour chaque insertion que je fais.
QUESTION
Comment écrire l'instruction AND pour que chaque @slavessortingng
contenant la @masterssortingng
soit vraie?
J'ai essayé avec
Tentative n ° 1:
AND @masterssortingng like '%' + @slavessortingng + '%'
Tentative n ° 2:
@masterssortingng like @slavessortingng + '%'
Aucun d'entre eux ne travaille …
Vous pouvez utiliser les fonctions SUBSTRING
et LEN
pour cela:
IF NOT EXISTS (SELECT ranking_date, ranking_keyword, ranking_id_doman FROM [dbo].[t_ranking] WHERE ranking_id_doman = @domanID AND ranking_keyword = @keyword AND ranking_searchesincluded = @searchesincluded) AND SUBSTRING(@slavessortingng, 1, LEN(@masterssortingng)) = @masterssortingng