sqlserver2008经验小结

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

posted @ 2023-02-15 11:35  leenAY  阅读(29)  评论(0)    收藏  举报