charindex

SQL-字符串运算符和函数

与世无争的帅哥 提交于 2020-01-11 15:06:26
COALESCE(columnname,string) 函数   将 NULL 值作为字符串(用空字符串或其他字符串替换 NULL)- 接受一列输入值(字段)如果该字段为 NULL,则返回后面替换的字符串 1 SELECT custid,country,region,city,country+N','+region+N','+city AS location FROM Sales.Customers SELECT custid,country,region,city,country+N','+COALESCE(region,N'q')+N','+city AS location FROM Sales.Customers SUBSTRING(string,start,length)   提取从指定位置开始,具有特定长度的字符串 SELECT SUBSTRING('abcde',2,2); LEFT(string,n), RIGHT(string,n)   第一个参数是要处理的字符串,第二个参数是要从字符串左边或右边提取字符的个数 SELECT LEFT('abcde',2),RIGHT('abcde',2); LEN(string),DATALENGTH(string)   LEN 函数返回字符数,DATALENGTH 函数返回字节数 SELECT LEN(N'ABCDE')

substring详细用法,截取不行就用替换

∥☆過路亽.° 提交于 2020-01-08 09:19:23
SUBSTRING 返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。 语法 SUBSTRING ( expression , start , length ) 参数 expression 是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。 start 是一个整数,指定子串的开始位置。 length 是一个整数,指定子串的长度(要返回的字符数或字节数)。 substring() ——任意位置取子串 left() right() ——左右两端取子串 ltrim() rtrim() ——截断空格,没有trim()。 charindex() patindex() ——查子串在母串中的位置,没有返回0。区别:patindex支持通配符,charindex不支持。 函数功效: 字符串截取函数,只限单字节字符使用(对于中文的截取时遇上奇数长度是会出现乱码,需另行处理),本函数可截取字符串指定范围内的字符。 应用范围: 标题、内容截取 函数格式: string substr ( string string, int start [, int length]) 参数1:处理字符串 参数2:截取的起始位置(第一个字符是从0开始)

How to search a string and return only numeric value?

最后都变了- 提交于 2020-01-07 09:52:35
问题 I need to create a formula column. In this column I need to return a numeric value. Example: database.dbo.table1 has a column called "message" that contains a long message. The message is formatted as so: various words, characters, spaces <this document is> document# = 12345 <this document is> What I need to do is search through the message, find "this document is" and searched between both of those phrases for the numeric value of the document, return the document # inside the formula column

sql server中的charindex

爷,独闯天下 提交于 2020-01-06 14:12:57
SQL Server中提供了一个charindex()方法用于查找一个字符/字符串在另一个字符/字符串中的位置。 语法 charindex(expressionToFind, expressionToSearch[, start_location]) 参数 expressionToFind:目标字符串,就是想要找到的字符/字符串,最大长度为8000 。 expressionToSearch:用于被查找的字符/字符串。 start_location:开始查找的位置,为空时默认从第一位开始查找。为零或为负数,都按一开始计算查找位置。 返回值 返回值是被查找的字符/字符串在目标字符/字符串中出现的位置,从1开始计算查找位置(非下标,是实际的位置)。如果没找到匹配的字符/字符串位置,返回0。 简单示例 select charindex('a', 'yanggb', 1); -- 2 经典应用 select case when charindex('yanggb1', 'yanggb1,yanggb2,yanggb3') <> 0 then 1 else 0 end has_permission; -- 1 "太久没见的人,会慢慢的,连想念也没有。" 来源: https://www.cnblogs.com/yanggb/p/11818793.html

sql server中的charindex

雨燕双飞 提交于 2020-01-05 01:12:50
SQL Server中提供了一个charindex()方法用于查找一个字符/字符串在另一个字符/字符串中的位置。 语法 charindex(expressionToFind, expressionToSearch[, start_location]) 参数 expressionToFind:目标字符串,就是想要找到的字符/字符串,最大长度为8000 。 expressionToSearch:用于被查找的字符/字符串。 start_location:开始查找的位置,为空时默认从第一位开始查找。为零或为负数,都按一开始计算查找位置。 返回值 返回值是被查找的字符/字符串在目标字符/字符串中出现的位置,从1开始计算查找位置(非下标,是实际的位置)。如果没找到匹配的字符/字符串位置,返回0。 简单示例 select charindex('a', 'yanggb', 1); -- 2 经典应用 select case when charindex('yanggb1', 'yanggb1,yanggb2,yanggb3') <> 0 then 1 else 0 end has_permission; -- 1 "太久没见的人,会慢慢的,连想念也没有。" 来源: https://www.cnblogs.com/yanggb/p/11818793.html

extract a string from a stored proc definition

泪湿孤枕 提交于 2020-01-03 05:29:06
问题 I need to check the library used by several stored procs that extract data from a remote server. I have (with SO help, see SO 21708681) built the below code: DECLARE @tProcs TABLE ( procID int IDENTITY, procObjectID nvarchar(100), procName nvarchar(100) ); insert into @tProcs SELECT object_id, name FROM sys.objects WHERE type in (N'P', N'PC') and name like '%_Extract' declare @countProcs int, @I int=0 select @countProcs=COUNT(*) from @tProcs while @I<@countProcs Begin declare @source_code

CHARINDEX用法

岁酱吖の 提交于 2019-12-26 05:58:09
CHARINDEX 返回字符串中指定表达式的起始位置。 语法 CHARINDEX ( e­xpression1 , e­xpression2 [ , start_location ] ) 参数 e­xpression1 一个表达式,其中包含要寻找的字符的次序。e­xpression1 是一个短字符数据类型分类的表达式。 e­xpression2 一个表达式,通常是一个用于搜索指定序列的列。e­xpression2 属于字符串数据类型分类。 start_location 在 e­xpression2 中搜索 e­xpression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 e­xpression2 的起始位置开始搜索。 返回类型 int 注释 如果 e­xpression1 或 e­xpression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。 如果 e­xpression1 或 e­xpression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在 e­xpression1 和 e­xpression2 都为 NULL 时返回

SQL charindex的用法

£可爱£侵袭症+ 提交于 2019-12-26 05:57:35
select * from table_a where charindex('a',id)>0 or charindex('b',id)>0 table_a 表中 id字段中含有"a"或者"b"的记录. --------------------------------------------------- CHARINDEX 返回字符串中指定表达式的起始位置。 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expression1 一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。 expression2 一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。 start_location 在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。 返回类型 int 注释 如果 expression1 或 expression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。 如果

MSSQL charindex

蹲街弑〆低调 提交于 2019-12-26 05:56:22
CHARINDEX 返回字符串中指定表达式的起始位置。 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expression1 一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。 expression2 一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。 start_location 在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。 返回类型 int 注释 如果 expression1 或 expression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。 如 果 expression1 或 expression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在 expression1 和 expression2 都为 NULL 时返回 NULL 值。 如果在

Invalid length parameter passed to the RIGHT function in update statement

浪子不回头ぞ 提交于 2019-12-25 07:32:26
问题 does anybody know why my update is not working if I try to set two of the columns at the same time? UPDATE mytable SET [Customer] = RIGHT([Customer], CHARINDEX('#', REVERSE([Customer])) -1) , [Segment] = RIGHT([Segment], CHARINDEX('#', REVERSE([Segment])) -1) WHERE CHARINDEX('#', [Customer]) > 0 OR CHARINDEX('#', [Segment]) > 0 If I run the query with updating just one column, then it works as it is expected to work. If I run with both, I get the following err: Invalid length parameter passed