当前位置: 首页 > 知识库问答 >
问题:

如何将分号分隔的长字符串存储到多列中?

微生俊健
2023-03-14

基本上由于live server的限制,我不能使用文本文件,所以我需要用T-SQL代码硬编码数据。

("001122;Sale Item 1", "001123;Sale Item 23", "001124;Sale Item 24", .... )  
DECLARE @Product TABLE(ProductCode INT NOT NULL, Description nvarchar(100) NOT NULL)
insert into @Product(ProductCode, Description) 
values ("001122;Sale Item 1", "001123;Sale Item 23", "001124;Sale Item 24", .... )
 Code        Description

 001122      Sale Item1
 001123      Sale Item2
 001124      Sale Item3

共有1个答案

郑松
2023-03-14

如果您有固定的格式,如示例所示,那么只需使用charindexsubstring就可以实现所需的输出

SELECT 
    SUBSTRING(description, 0, CHARINDEX(';', DESCRIPTION, 0)) code,
    SUBSTRING(description, CHARINDEX(';', DESCRIPTION, 0)+1, LEN(DESCRIPTION)) Description  
FROM @Product

产出:

 code       Description
------------------------
001122      Sale Item 1
001123      Sale Item 23
001124      Sale Item 24
 类似资料:
  • 问题内容: 如何将逗号分隔的字符串拆分为存储过程中的字符串,并将其插入表字段中? 使用Firebird 2.5 问题答案: 这里有一个示例如何分割字符串并将子字符串写入表中:

  • 我想使用以下代码将字符串存储到CSV文件中,但生成的是空CSV。 代码 我怎样才能得到预期的结果?

  • 在逗号处划分字符串的最佳方法是什么,这样每个单词都可以成为ArrayList的一个元素? 例如:

  • 问题内容: 我有一个长度未知的字符串,看起来像这样 将这些字符串用逗号分隔的最佳方法是什么,以便每个单词都可以成为的元素? 例如 问题答案: 你可以这样做: 基本上,该方法将根据你正在传递的(在这种情况下)定界符来分割字符串,并将返回字符串数组。 但是,你似乎位于字符串列表而不是数组之后,因此必须使用该实用程序将数组转换为列表。就像供你参考一样,你也可以这样做: 但是通常最好是对接口进行编程,而不

  • 问题内容: 欲分割为4的阵列,以利用 这是我的代码: 但是,结果标记是一个空数组:[],而不是 我想要的4数组。 我已经测试过更改一点: 这次的结果标记为。这与我想要的接近,但是我真的不想在拆分之前添加此“ 1”。 问题基本上是,如果它仅包含空元素,它将返回一个空数组。 您能帮助解决问题吗? 问题答案: 您需要使用带有limit参数的重载方法。 从文档(重点是我的): limit参数控制应用图案的

  • 问题内容: 我有一个。所选(选中)的项目存储在中。 例如,选择的值超过7天 我正在转换为以逗号分隔的,即 现在,我将此值作为字符串传递给存储过程。我想触发查询,如: 我的问题是:如何在存储过程中分离字符串? 问题答案: 如果传递逗号分隔(任何分隔符)的字符串来存储过程并在查询中使用,那么必须吐出该字符串,然后才能使用它。 下面有例子: