逗号分隔的字符串到SQL Server中的表的列
发布时间:2021-02-28 03:44:37 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用SQL Server,我已成功将表的行转换为逗号分隔值,现在我想将该逗号分隔值的字符串转换回表的行. 我有这个字符串(Varchar) DECLARE @str AS varchar(Max)SET @str = '0.00,0.00,1576.95,4105.88,1017.87,6700.70' 我希望这些值成行. 喜欢 0.000.001576
|
我正在使用SQL Server,我已成功将表的行转换为逗号分隔值,现在我想将该逗号分隔值的字符串转换回表的行. 我有这个字符串(Varchar) DECLARE @str AS varchar(Max) SET @str = '0.00,0.00,1576.95,4105.88,1017.87,6700.70' 我希望这些值成行. 喜欢 0.00 0.00 1576 ... 解决方法创建一个功能:CREATE FUNCTION [dbo].[Split](@String nvarchar(4000),@Delimiter char(1))
RETURNS @Results TABLE (Items nvarchar(4000))
AS
BEGIN
DECLARE @Index INT
DECLARE @Slice nvarchar(4000)
-- HAVE TO SET TO 1 SO IT DOESN’T EQUAL ZERO FIRST TIME IN LOOP
SELECT @Index = 1
WHILE @Index !=0
BEGIN
SELECT @Index = CHARINDEX(@Delimiter,@String) --Getting the indexof the first Occurrence of the delimiter
-- Saving everything to the left of the delimiter to the variable SLICE
IF @Index !=0
SELECT @Slice = LEFT(@String,@Index - 1)
ELSE
SELECT @Slice = @String
-- Inserting the value of Slice into the Results SET
INSERT INTO @Results(Items) VALUES(@Slice)
--Remove the Slice value from Main String
SELECT @String = RIGHT(@String,LEN(@String) - @Index)
-- Break if Main String is empty
IF LEN(@String) = 0 BREAK
END
RETURN
END
将字符串@str和分隔符(,)传递给函数. SELECT Items FROM [dbo].[Split] (@str,',') 它会将结果作为表返回: Items 0.00 0.00 1576.95 0.00 4105.88 1017.87 0.00 6700.70 见SQL Fiddle (编辑:菏泽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 如何在SQl Server 2008中选择distinct,但仅限
- 预测Dapp很可能是区块连的下一个风口
- Google近日官司缠身 搜索方式引发法律质疑
- 英特尔CEO称中日韩三国Linux计划必将失败
- 纯css实现(无脚本)Html指令式tooltip文字提示效果
- jsf – 如何在运行时使用数据库中的值初始化inputtextfield
- sql-server – SQL Server 2008在Insert,Update之后运行触发
- sql-server – 使用AlwaysOn功能的无SAN的高可用SQL Server
- 国内首家软件企业捐赠80万元产品共抗非典
- sql数据库错误9003什么原因?如何解决?


