
正文
sqlserver字符串计算,sql字符串运算
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在SQL SERVER中计算字符的长度
SQL
server数据库计算字符长度用datalength(函数),写法如下:
select
*
from
xxx
where
datalength(xx)=4,
表示数据库里字符个数等于2个,依次类推,找出长度为10个字符串的话,datalength(xx)=20
不知道是不是每个字符都占2个位置。
相关问答
Q1: sqlserver里面多个字段的数据计算以及统计,各位帮帮忙
userid对应另外一个客户表的主键useridA,useridA下面还有子ID?
useridA下面还有子ID这是什么意思! 不是属于客户表基本信息嘛!
还是userid是被操作用户,按理说应是一对多的关系.客户表的主键useridA 多个被操作用户
如有问题可以追问,我当及时回答.
希望能帮到你!
Q2: sqlserver 计算字符串
declare @num1 int,@num2 int; -- 如果是int型直接+就可以
set @num1=1;
set @num2=2;
select (@num1+@num2) num;
declare @num1 varchar(2),@num2 varchar(2); --非int类型需要convert为int型后+
set @num1='1';
set @num2='2';
declare @tempnum1 int,@tempnum2 int;
set @tempnum1 = CONVERT(int,@num1);
set @tempnum2 = CONVERT(int,@num2);
select (@tempnum1+@tempnum2) num;
Q3: sqlserver中如何进行截取字符串然后再计算?
oracle中的方法可以这样,但是不知道sql server中支不支持相应的函数,你可以试一下
select replace(t.number,'m','') num from table1 t //去掉m 变成100*200但是这是varchar类型不是数字
(1)instr(replace(t.number,'m',''),'*',1) 从100*200的第1位截取到 '*' 的长度,注:这时是长度,不是数字100
substr(num,1,instr(replace(t.number,'m',''),'*',1)-1) 从第一位截取到'*'之前,即取出100
(2)instr(replace(t.number,'m',''),'*',-1) 从100*200的最后1位截取到 '*' 的长度
substr(num,-1,instr(replace(t.number,'m',''),'*',-1)-1) 取出200
然后(1)*(2)就可以了(把substr里面的num换成 replace(t.number,'m',''))
思路就这样,你再整理一下就可以了
Q4: SQLServer 中怎么计算字段类型为text 的长度?急!
len(READTEXT([text]))
datalength(),返回为字节数
len(cast(列名
as
varchar))
你看哪种好就用哪种
Q5: sql server如何在拼接字符串中使用运算符(+-*/)?
以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。
sqlserver:
select '123'+'456';
oracle:
select '123'||'456' from dual;
或
select concat('123','456') from dual;
mysql:
select concat('123','456');
注意:oracle和mysql中虽然都有concat,但是oracle中只能拼接2个字符串,所以建议用||的方式;mysql中的concat则可以拼接多个字符串。







