cast(str as type)
print cast('14.23' as decimal(5,3))
--14.230
--5为精度,指除小数点外,最长为5位,优先整数位14,为2位,剩下的为小数位,这里是23,可以成功转换,结果为14.230 npmmirror 中国镜像站
--精度指数字的位数。 小数位数指小数点后的数字位数。 例如,数 123.45 的精度是 5,小数位数是 2。
print cast('1234.23' as decimal(5,3))
--将 varchar 转换为数据类型 numeric 时出现算术溢出错误。
--select rtrim(substring('客户编号 => 客户编号',0,patindex('%=%','客户编号 => 客户编号')))
replicate(input_string, count)
返回count个,input_string的字符串结果
select REPLICATE('AB',2) --ABAB
select REPLICATE('AB',0) --
select REPLICATE('AB',-3) --NULL
select CHARINDEX('测试','查询下标测试') --5
select SUBSTRING('查询下标测试',1,2) --查询
字符串拼接
create table #temp1(column0 int,column1 nvarchar(10))
insert into #temp1 values(1,'ab'),(1,'cd'),(1,'ef'),(3,'gh')
select stuff((select column1+',' from #temp1 for xml path('')),1,0,''),sum(1) from #temp1
drop table #temp1
select column1 from #temp1 group by column0
游标
@@FETCH_STATUS : 0:成功读取到行 -1:没取到数据,游标中的数据已取完 -2.没获取到行,进程被中断
DECLARE @ID NVARCHAR(50),@NAME NVARCHAR(50)
DECLARE VARCURSOR CURSOR FOR SELECT ID,NAME FROM Table
OPEN VARCURSOR
FETCH NEXT FROM VARCUSOR INTO @ID,@NAME
IF @@FETCH_STATUS <> -1 AND @@FETCH_STATUS <>-2
BEGIN
SELECT @ID,@NAME
FETCH NEXT FROM VARCUSOR INTO @ID,@NAME
END
CLOSE VARCURSOR
DEALLOCATE VARCURSOR