sql server 查找指定字符串的位置

create function fn_find(@find varchar(8000), @str varchar(8000), @n smallint)
    returns int
as
begin
    if @n < 1 return (0)
    declare @start smallint, @count smallint, @index smallint, @len smallint
    set @index = charindex(@find, @str)
    if @index = 0 return (0)
    else select @count = 1, @len = len(@find)
    while @index > 0 and @count < @n
        begin
            set @start = @index + @len
            select @index = charindex(@find, @str, @start), @count = @count + 1
        end
    if @count < @n set @index = 0
    return (@index)
end
go  

declare @str varchar(100)
set @str=‘A,B,C,D,A,B,C,D,C,D,B,A,C,E‘  

select dbo.fn_find(‘A‘,@str,1) as one, dbo.fn_find(‘A‘,@str,2) as two, dbo.fn_find(‘A‘,@str,3) as three, dbo.fn_find(‘A‘,@str,4) as four
/*
one         two         three       four
----------- ----------- ----------- -----------
1           9           23          0
*/

  

时间: 2024-10-12 21:43:38

sql server 查找指定字符串的位置的相关文章

sql server 查找包含字符串的对象

SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS object_name, o.type, o.type_desc, sm.definition FROM sys.sql_modules AS sm JOIN sys.objects AS o ON sm.object_id = o.object_id where sm.definition like '%要匹配的内容%' --collate SQL_Latin1_General_CP1_CI_A

SQL Server中截取字符串常用函数

SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' ) 返回从字符串左边开始指定个数的字符 select LEFT('SQL_Server_2008',4 ); 返回结果:SQL_ 2.RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串'

SQL Server 2008连接字符串写法大全

SQL Server 2008连接字符串写法大全 一..NET Framework Data Provider for SQL Server 类型:.NET Framework类库使用:System.Data.SqlClient.SqlConnection厂商:Microsoft 标准安全连接 Data Source = myServerAddress;Initial Catalog = myDataBase;User Id = myUsername;Password = myPassword;

SQL Server 查找统计信息的采样时间与采样比例

原文:SQL Server 查找统计信息的采样时间与采样比例 有时候我们会遇到,由于统计信息不准确导致优化器生成了一个错误的执行计划(或者这样表达:一个较差的执行计划),从而引起了系统性能问题.那么如果我们怀疑这个错误的执行计划是由于统计信息不准确引起的.那么我们如何判断统计信息不准确呢?当然首先得去查看实际执行计划中,统计信息的相关数据是否与实际情况有较大的出入,下面我们抛开这个大命题,仅仅从统计信息层面去查看统计信息的更新时间,统计信息的采样行数.采样比例等情况. 1:首先,我们要查查统计信

SQL Server获取指定行的数据

SQL Server获取指定行(如第二行)的数据 --SQL Server获取指定行(如第二行)的数据-- --法一(对象法)-- select * from ( select * , number = row_number() over(order by Grade desc) from Students )  m where number = 2 --法二(排除法)--- select top 1 * from Students where Grade not in ( select top

SQL Server 查找表问题

使用以下SQL遍历表,查询是否有问题 DECLARE @table_name VARCHAR(50) DECLARE cursor_table CURSOR FOR SELECT name FROM sys.tables OPEN cursor_table FETCH next FROM cursor_table INTO @table_name WHILE( @@FETCH_STATUS = 0 ) BEGIN DBCC checktable(@table_name) PRINT ' ' PR

用正则表达式解决查找指定字符串前一位不能出现xxx,后一位不能出现xxx

之前项目要求做一个按指定字符串查找的工具,把所有该字段对应的数据信息都取出来.由于数据量大所以查询结果要求精确匹配(说到这里没有什么难度). 但是还有一种符合条件的结果是该字段处于一条sql语句中,简单的说,就是一个长得字符串里包含了要查询的字段,那么要求来了. 1, 必须找出精确匹配要求的字符串的查询结果,包括完全相同结果和长字符串中精确匹配的结果 2, 长字符串中的字符串有可能含有&xxx,或者&&xxx 也是符合条件的,因为他们实际指的是同一个字符串. 看起来很乱,举个例子就

sql server 2000 和 sql server 2005 数据库连接字符串区别

//sql server 2000 <add name="Connection" connectionString="Data Source=.;Initial Catalog=DB;User ID=sa;Password=sa" providerName="System.Data.SqlClient"/> //sql server 2005 <add name="Connection" connection

SQL Server 常用连接字符串

C# 连接SQL数据库 常用连接字符串 http://www.cnblogs.com/delphinet/archive/2011/06/24/2088765.html