2016-05-31 5 views
2

私はすべてのアルファベット文字列をテーブルで見つけなければなりません。これを行うには、私はアルゴリズム(私はこの@tablename値を取得するには、ループ内の別のテーブルを反復処理)の下に使用します。それはまた私に別の文字列に含まれる文字列を示しているためアルファベット以外の文字列で文字列を見つけよう

UPPER(rows_value) like '%' + @TableName + '%') 

この条件が間違っています。

@TableName = testとしましょう。私はこの文字列(アルファベット以外の文字でも引っ張られている)を含むテーブルにレコードを探したい。私のアルゴリズムは私の行を返します:

test 
(test) 
test0x 
test02 
_test_2222 
pretest <--- 
uptest <---- 
... 

私は最後の2つが必要ではありません。不要な結果を除外する条件を変更するにはどうすればよいですか?

+2

あなたは、アルゴリズムの結果を掲載しているが、どのようなあなたの期待結果 – StackUser

+0

について、私は(矢印でマーク)2最後の文字列を必要としません。 – PNPTestovir

答えて

2

は、次のクエリを試してみてください。

DECLARE @TableName VARCHAR(128) = 'test' -- Replace with propper data type and max length 
SELECT * 
FROM (VALUES 
    ('test'), 
    ('(test)'), 
    ('test0x'), 
    ('test02'), 
    ('_test_2222'), 
    ('pretest '), 
    ('uptest'), 
    ('testAlpha'), 
    ('13223 tes3432') 
) t(Col1) 
WHERE t.Col1 LIKE '%' + @TableName + '%' 
AND  NOT(t.Col1 LIKE '%[a-z]' + @TableName + '%' OR t.Col1 LIKE '%' + @TableName + '[a-z]%') 
関連する問題