Author |
Topic |
sigmas
Posting Yak Master
172 Posts |
Posted - 2013-01-26 : 07:13:37
|
Hi,I want to find index of a character which same with one of following characters:* # ~ !So I should use this:patindex ('%[*#~!]%', string_value)That's okay but for this list: [ ] ^ _ %I have problem.patindex ('%[[]^_%]%', string_value) <<<=== WRONG |
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2013-01-26 : 07:27:37
|
seeSELECT *FROM(SELECT '[ ] ^ _ %' AS string_value UNION ALLSELECT '[ ] ^ _ %anjhd' UNION ALLSELECT 'jkhjkhnb[ ] ^ _ %' UNION ALLSELECT 'hjjhgjhg[ ] ^ _ %anjhd' )tWHERE patindex ('%[[ ]] ^ _ [%]', string_value) >0output--------------------------------------string_value--------------------------------------[ ] ^ _ %jkhjkhnb[ ] ^ _ % ------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2013-01-26 : 07:35:42
|
another way using ESCAPESELECT *FROM(SELECT '[ ] ^ _ %' AS string_value UNION ALLSELECT '[ ] ^ _ %anjhd' UNION ALLSELECT 'jkhjkhnb[ ] ^ _ %' UNION ALLSELECT 'jkhjkhnb[ ][ ^ _ %' UNION ALLSELECT 'hjjhgjhg[ ] ^ _ %anjhd' )tWHERE string_value LIKE '%|[ ] ^ _ |%' ESCAPE '|'output-------------------------------string_value-------------------------------[ ] ^ _ %jkhjkhnb[ ] ^ _ % ------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
|
|
sigmas
Posting Yak Master
172 Posts |
Posted - 2013-01-26 : 08:57:25
|
No no!I want return index of first characters witch matched with one of following characters:[]%^for exampleSample Data Resultasdl[ sdf >>> 5] asf sdf >>> 1asdfhsdaf >>> 0as[] [][] >>> 3a^asf[as] >>> 2 |
|
|
sigmas
Posting Yak Master
172 Posts |
Posted - 2013-01-26 : 09:05:21
|
logically same with this:select (select min(v) from ( select patindex('%[[]%',data) union select patindex('%]%', data) union select patindex('%[%]%', data) )d(v) where v > 0 ) as ixfrom(values ('asdfd[ ][]['))t(data) |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2013-01-26 : 11:27:26
|
do you mean this?SELECT *FROM (SELECT 'wrwrwewe%anjhd' AS string_value UNION ALLSELECT 'jkhjkhnb[ ]m,n,m' UNION ALLSELECT 'jkhjkhnb' UNION ALLSELECT 'hjjhg_jhg^' UNION ALLSELECT 'jhgjg$yutuu')tWHERE string_value LIKE '%[$[ $]$^_$%]%' ESCAPE '$'output----------------------------string_value----------------------------wrwrwewe%anjhdjkhjkhnb[ ]m,n,mhjjhg_jhg^ ------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
|
|
sigmas
Posting Yak Master
172 Posts |
Posted - 2013-01-26 : 12:10:05
|
NO!I need position of pattern at string values. |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2013-01-26 : 12:11:51
|
so if you've more than one character coming in a string how do you want output to come?------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
|
|
|