sqlstr函数
① sql如何让字符串与数值相加
您好,这样写,例表名为 table
update table set c = rtrim(a) + ltrim(str(b)) ;
两个字符串连接用 ‘+’号,数值转字符 str()函数,rtrim()去除后面空格,ltrim()去除前面空格
② SQL中统计字符串长度的函数是什么
SQL中统计字符串长度的函数是:函数len(string)。
比如:
select len('abc')输出3
select len('abcde')输出5
字符串函数对二进制数据、字符串和表达式执行不同的运算。此类函数作用于CHAR、VARCHAR、 BINARY、 和VARBINARY 数据类型以及可以隐式转换为CHAR 或VARCHAR的数据类型。可以在SELECT 语句的SELECT 和WHERE 子句以及表达式中使用字符串函数。
常用的字符串函数有:
ASCII():返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
CHAR():将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。
LOWER()和UPPER():LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。
STR():把数值型数据转换为字符型数据。
STR (<float_expression>[,length[, <decimal>]])
length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。
当length 或者decimal 为负值时,返回NULL;
当length 小于小数点左边(包括符号位)的位数时,返回length 个*;
先服从length ,再取decimal ;
当返回的字符串位数小于length ,左边补足空格。
LTRIM() 把字符串头部的空格去掉。
RTRIM() 把字符串尾部的空格去掉。
left():LEFT (<character_expression>, <integer_expression>)返回character_expression 左起 integer_expression 个字符。
RIGHT():RIGHT (<character_expression>, <integer_expression>)返回character_expression 右起 integer_expression 个字符。
SUBSTRING():SUBSTRING (<expression>, <starting_ position>, length)返回从字符串左边第starting_ position 个字符起length个字符的部分。
CHARINDEX():返回字符串中某个指定的子串出现的开始位置。CHARINDEX (<’substring_expression’>, <expression>)
其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。
此函数不能用于TEXT 和IMAGE 数据类型。
PATINDEX():返回字符串中某个指定的子串出现的开始位置。PATINDEX (<’%substring _expression%’>, <column_ name>)其中子串表达式前后必须有百分号“%”否则返回值为0。与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。
QUOTENAME():返回被特定字符括起来的字符串。QUOTENAME (<’character_expression’>[, quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。
REPLICATE():返回一个重复character_expression 指定次数的字符串。REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。
REVERSE():将指定的字符串的字符排列顺序颠倒。REVERSE (<character_expression>) 其中character_expression 可以是字符串、常数或一个列的值。
REPLACE():返回被替换了指定子串的字符串。REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用string_expression3 替换在string_expression1 中的子串string_expression2。
SPACE():返回一个有指定长度的空白字符串。SPACE (<integer_expression>) 如果integer_expression 值为负值,则返回NULL 。
STUFF():用另一子串替换字符串指定位置、长度的子串。
STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>):如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。
拓展资料:
SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
③ SQL的str函数用法,最好带实例,
返回由数字数据转换来的字符数据。
语法:STR ( float_expression [ , length [ , decimal ] ] )
float_expression
带小数点的数字 ( float) 数据类型的表达式。
length
总长度。它包括小数点、符号、数字以及空格。
默认值为 10。如果数字长度没有指定的长,则前面会填充空格
decimal
小数点右边的小数位数。decimal 必须小于等于 16。
如果 decimal 大于 16,则将结果截断为小数点右边的 16 位。
会进行四舍五入。
比如 SELECT STR(123.45, 30, 1)
返回前面带有25个空格 的 123.5
④ sql编写函数实现字符串倒序
create or replace function F_STR_CG(str in varchar2) return varchar2 is
Result varchar2(5000);
str_len int;
i int;
str1 varchar2(5000);
str2 varchar2(5000);
begin
select length(str) into str_len from al;
str1 := str;
for i in 1 .. str_len loop
select substr(str1, -1) into str2 from al;
result := result || str2;
select substr(str1, 1, str_len - i) into str1 from al;
end loop;
return(result);
end F_STR_CG;
Oracle数据库的,你可以参考一下
⑤ 自己编写sql函数
create function [dbo].[Get_StrArrayStrOfIndex]
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
--这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
return substring(@str,@start,@location-@start)
end
使用举例:
select id,code=dbo.Get_StrArrayStrOfIndex(code,'.',4) from code_table
⑥ 在SQL Server数据库中拆分字符串函数
SQL Server数据库中拆分字符串函数的具体方法
CREATE FUNCTION uf_StrSplit (@origStr varchar( ) 待拆分的字符串@markStr varchar( )) 拆分标记 如 RETURNS @splittable table( str_id varchar( ) NOT NULL 编号ID string varchar( ) NOT NULL 拆分后的字符串)ASBEGINdeclare @strlen int @postion int @start int @sublen int @TEMPstr varchar( ) @TEMPid intSELECT @strlen=LEN(@origStr) @start= @sublen= @postion= @TEMPstr= @TEMPid= if(RIGHT(@origStr )<>@markStr )beginset @origStr = @origStr + @markStrendWHILE((@postion<=@strlen) and (@postion != ))BEGINIF(CHARINDEX(@markStr @origStr @postion)!= )BEGINSET @sublen=CHARINDEX(@markStr @origStr @postion) @postion;ENDELSEBEGINSET @sublen=@strlen @postion+ ;ENDIF(@postion<=@strlen)BEGINSET @TEMPid=@TEMPid+ ;SET @TEMPstr=SUBSTRING(@origStr @postion @sublen);INSERT INTO @splittable(str_id string)values(@TEMPid @TEMPstr)IF(CHARINDEX(@markStr @origStr @postion)!= )BEGINSET @postion=CHARINDEX(@markStr @origStr @postion)+ ENDELSEBEGINSET @postion=@postion+ ENDENDENDRETURNEND
例如 select * from uf_StrSplit( )
输出结果
lishixin/Article/program/SQLServer/201311/22421