相关疑难解决方法(0)

如何拆分字符串以便我可以访问项目x?

使用SQL Server,如何拆分字符串以便访问项目x?

拿一个字符串"Hello John Smith".如何按空格分割字符串并访问索引1处应该返回"John"的项目?

sql t-sql sql-server split

480
推荐指数
17
解决办法
82万
查看次数

将逗号分隔的字符串转换为单独的行

我有一个像这样的SQL表:

| SomeID         | OtherID     | Data
+----------------+-------------+-------------------
| abcdef-.....   | cdef123-... | 18,20,22
| abcdef-.....   | 4554a24-... | 17,19
| 987654-.....   | 12324a2-... | 13,19,20
Run Code Online (Sandbox Code Playgroud)

是否有一个查询,我可以执行查询,如SELECT OtherID, SplitData WHERE SomeID = 'abcdef-.......'返回单个行,如下所示:

| OtherID     | SplitData
+-------------+-------------------
| cdef123-... | 18
| cdef123-... | 20
| cdef123-... | 22
| 4554a24-... | 17
| 4554a24-... | 19
Run Code Online (Sandbox Code Playgroud)

基本上将逗号中的数据拆分成单独的行?

我知道将comma-separated字符串存储到关系数据库听起来很愚蠢,但消费者应用程序中的正常用例使得这非常有用.

我不想在应用程序中进行拆分,因为我需要分页,因此我想在重构整个应用程序之前探索选项.

这是SQL Server 2008(非R2).

t-sql sql-server split comma

215
推荐指数
10
解决办法
41万
查看次数

单独的逗号分隔值并存储在sql server中的表中

我有一个存储过程,它将逗号分隔值作为输入.我需要将它分开,并需要将它作为单独的行存储在表中.

让SP的输入是:

Rule_ID  ListType_ID  Values
1        2            319,400,521,8465,2013
Run Code Online (Sandbox Code Playgroud)

我需要将它存储DistributionRule_x_ListType在以下格式调用的表中:

Rule_ID  ListType_ID  Value
1        2            319
1        2            400
1        2            521
1        2            8465
1        2            2013
Run Code Online (Sandbox Code Playgroud)

我的SP如下所示:

ALTER PROCEDURE [dbo].[spInsertDistributionRuleListType]
(@Rule_ID int,
@ListType_ID int,
@Values VARCHAR(MAX)=NULL
)
AS
BEGIN

    INSERT INTO DistributionRule_x_ListType (Rule_ID,ListType_ID,Value)
    VALUES (@Rule_ID,@ListType_ID,@Values)

END
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

6
推荐指数
2
解决办法
7万
查看次数

标签 统计

sql-server ×3

split ×2

sql ×2

t-sql ×2

comma ×1

sql-server-2005 ×1