SqlServer2005中字符函数的应用
2023-06-13 09:14:23 时间
USEDemo
GO
/*
将表Code的列String中的值提取放到Record表中
String中字符类型为
dsddddd,2222222,222221,3
其中最后一位为标记对于Record表中的BiaoJi
前面的以","分割的是值对应Record表中Value
*/
GO
DROPPROCproc_split_Code
GO
CREATEPROCproc_split_Code
AS
BEGIN
SETNOCOUNTON
DECLARE@CountINT--条数
DECLARE@IndexINT--变量
SET@Index=1--默认
SELECT@Count=Count(*)FROMCode
--PRINT@Count
WHILE(@Index<=@Count)
BEGIN
DECLARE@BiaoJiINT--标记
DECLARE@StringNVARCHAR(1000)--字符串
DECLARE@TempINT--分隔符的位置
DECLARE@StarINT--开始位置
DECLARE@CodeNVARCHAR(100)--
SET@Star=0
SELECT@String=REVERSE(String)
FROM(
SELECTrow_number()OVER(ORDERBYString)ASrownumber,*FROMCode
)ASa
WHERErownumberbetween@Indexand@Index
SET@Temp=CHARINDEX(",",@String,@Star)
SET@BiaoJi=SUBSTRING(@String,@Star,@Temp)
PRINT@BiaoJi
SET@String=REVERSE(@String)
SET@Temp=CHARINDEX(",",@String,@Star)
SET@Star=0
WHILE(@Temp>0)
BEGIN
SET@Temp=CHARINDEX(",",@String,@Star)
--PRINT@Star
--PRINT@Temp
IF@Temp>0
BEGIN
SET@Code=SUBSTRING(@String,@Star,@Temp-@Star)
PRINT@Code
--插入到相应的表中
INSERTINTORecord(BiaoJi,Value,Time)
VALUES(@BiaoJi,@Code,getdate())
END
SET@Star=@Temp+1
END
--PRINT@Index
PRINT@String
SET@Index=@Index+1
END
END
GO
EXECproc_split_Code
相关文章
- C语言:字符数组的输入输出
- ASP数组排序_字符数组
- mysql通过INSERT IGNORE INTO插入拼音字符无效问题及解决
- mysql 替换数据库 某个字段中的字符详解数据库
- Java IO(四):字符流详解编程语言
- 解决Linux系统字符编码问题(linux修改字符编码)
- Oracle 字符数据类型的应用(oraclechar)
- 掌握Linux:字符界面精通.(linux字符界面)
- Oracle空白字符去除函数LTRIM的应用(oracleltrim)
- 使用MSSQL查看字符编码的简单操作(mssql查看字符编码)
- 索引Oracle中全字符索引的实现与应用(oracle全字符)
- Mysql无法正确录入中文字符的解决方法(mysql不能录中文)
- Oracle中字符增强技术的应用(oracle中字符加1)
- Oracle Q字符改变业务流程的威力(oracle q字符)
- Python字符串中的字符倒转