如何基于MS SQL 2012数据库中的模式批量更新varchar数据?

编码英雄

我正在使用MS SQL Server 2012,并且需要基于文本模式在单个列中批量更新varchar数据。

基本上,我的单​​列包含用逗号分隔的可变长度文本数据(请参见下文),并且我需要根据模式剥离一些数据。例如,我有“ ProductA-106,ProductB-107”,需要将其转换为“ ProductA,ProductB”,去掉“ -Number”文本。

你能帮我做到吗?非常感谢。

  • 现有:

单列

ProductA-106, ProductB-107
ProductC-108, ProductD-109, ProductDA-109, ProductDB-109
ProductF-1011, ProductE-2015
  • 最终结果:

单列

ProductA, ProductB
ProductC, ProductD
ProductF, ProductE
克劳森

这是一个完美的示例,为什么您不想拥有这样的数据库设计。

可以解决,但这不是容易,漂亮或快速的:

创建此功能:

CREATE function dbo.f_cleanup (@a varchar(max))
returns varchar(max)
as
BEGIN

WHILE @a like '%-%'
SELECT @a = STUFF(@a, dash, comma - dash, '')
FROM 
(
  SELECT CHARINDEX('-', @a) dash, 
         CHARINDEX(',', @a + ',', CHARINDEX('-', @a)) comma
) x

RETURN @a
END
go

在这里测试:

DECLARE @t TABLE(SingleColumn varchar(100))
INSERT @t VALUES
('ProductA-106, ProductB-107'),
('ProductC-108, ProductD-109, ProductDA-109, ProductDB-109'),
('ProductF-1011, ProductE-2015')

UPDATE @t
SET SingleColumn = dbo.f_cleanup (SingleColumn)

SELECT * FROM @t

结果:

ProductA, ProductB
ProductC, ProductD, ProductDA, ProductDB
ProductF, ProductE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL Server 2012中更新数据库用户密码

来自分类Dev

如何在SQL Server 2012中更新数据库用户密码

来自分类Dev

SQL server 2012中如何为每个数据库分配SQL server的大小?

来自分类Dev

如何使用sql游标更新sql server数据库中的数据?

来自分类Dev

非程序员如何处理对SQL数据库的频繁批量更新。数据库是否应该每次都从Excel导入?

来自分类Dev

如何仅使用PL / SQL更新大值的CLOB,而不修改数据库模式?

来自分类Dev

如何在SQL Server 2012中的数据库的所有表中搜索列名?

来自分类Dev

如何在SQL Server 2012中的数据库的所有表中搜索列名?

来自分类Dev

批量插入SQL Server 2012数据库-C#

来自分类Dev

如何使用django将数据更新到sql数据库中的表中

来自分类Dev

如何在C#中还原SQL Server 2012数据库.bak文件?

来自分类Dev

如何从SQL Server 2012中的数据库创建特定表的备份.bak文件?

来自分类Dev

如何从SQL Server 2012中的数据库创建特定表的备份.bak文件?

来自分类Dev

如何在 DataGridView 中从 SQL 数据库更改数据源,以便更新

来自分类Dev

如何在远程MS SQL服务器上更新数据库(EF代码优先)

来自分类Dev

如何减少MS SQL Server的数据库大小

来自分类Dev

如何基于另一个数据库中满足的参数创建SQL数据库

来自分类Dev

如何运行在OrientDB中构建数据库和模式的SQL脚本?

来自分类Dev

批量插入后如何将数据插入SQL CE数据库?

来自分类Dev

更新SQL数据库中的数据

来自分类Dev

数据库重定位,分离/附加数据库,MS-SQL-Server-Management-Studio(2012)

来自分类Dev

显示基于SQL数据库中字段值的按钮

来自分类Dev

Laravel中基于SQL的数据库迁移?

来自分类Dev

如何基于搜索到的值从jtable和sql数据库中删除搜索到的行

来自分类Dev

如何从MS SQL数据库(Microsoft SQL Server)中的其他.sql文件运行.sql文件?

来自分类Dev

MS Access数据库中的SQL查询错误

来自分类Dev

改善ms sql中的数据库查询

来自分类Dev

如何使用变量中的数据填充sql数据库?

来自分类Dev

如何从Firebird SQL数据库中删除大数据

Related 相关文章

  1. 1

    如何在SQL Server 2012中更新数据库用户密码

  2. 2

    如何在SQL Server 2012中更新数据库用户密码

  3. 3

    SQL server 2012中如何为每个数据库分配SQL server的大小?

  4. 4

    如何使用sql游标更新sql server数据库中的数据?

  5. 5

    非程序员如何处理对SQL数据库的频繁批量更新。数据库是否应该每次都从Excel导入?

  6. 6

    如何仅使用PL / SQL更新大值的CLOB,而不修改数据库模式?

  7. 7

    如何在SQL Server 2012中的数据库的所有表中搜索列名?

  8. 8

    如何在SQL Server 2012中的数据库的所有表中搜索列名?

  9. 9

    批量插入SQL Server 2012数据库-C#

  10. 10

    如何使用django将数据更新到sql数据库中的表中

  11. 11

    如何在C#中还原SQL Server 2012数据库.bak文件?

  12. 12

    如何从SQL Server 2012中的数据库创建特定表的备份.bak文件?

  13. 13

    如何从SQL Server 2012中的数据库创建特定表的备份.bak文件?

  14. 14

    如何在 DataGridView 中从 SQL 数据库更改数据源,以便更新

  15. 15

    如何在远程MS SQL服务器上更新数据库(EF代码优先)

  16. 16

    如何减少MS SQL Server的数据库大小

  17. 17

    如何基于另一个数据库中满足的参数创建SQL数据库

  18. 18

    如何运行在OrientDB中构建数据库和模式的SQL脚本?

  19. 19

    批量插入后如何将数据插入SQL CE数据库?

  20. 20

    更新SQL数据库中的数据

  21. 21

    数据库重定位,分离/附加数据库,MS-SQL-Server-Management-Studio(2012)

  22. 22

    显示基于SQL数据库中字段值的按钮

  23. 23

    Laravel中基于SQL的数据库迁移?

  24. 24

    如何基于搜索到的值从jtable和sql数据库中删除搜索到的行

  25. 25

    如何从MS SQL数据库(Microsoft SQL Server)中的其他.sql文件运行.sql文件?

  26. 26

    MS Access数据库中的SQL查询错误

  27. 27

    改善ms sql中的数据库查询

  28. 28

    如何使用变量中的数据填充sql数据库?

  29. 29

    如何从Firebird SQL数据库中删除大数据

热门标签

归档