【问题标题】:Add space between text and number SQL server在文本和数字之间添加空格 SQL server
【发布时间】:2022-11-04 14:54:26
【问题描述】:

我在数据库中有一个 ID 列,其中包含如下值:

AB1234GF

我想在两者之间添加空格,如下所示:

AB1234 GF

如何做到这一点?

我尝试了 substring 和 split 方法,但是由于每个 ID 的长度不同,它不起作用。

【问题讨论】:

  • 列是什么数据类型?
  • 你想要AB1234 之间的空格吗?
  • Nvarchar 是数据类型,我想要 abcd1234 和 gf 之间的空间
  • 好吧,当向表中插入值时,它非常简单

标签: sql-server database


【解决方案1】:

我们可以在这里使用PATINDEX()

SELECT
    SUBSTRING(col, 1, PATINDEX('%[0-9][A-Z]%', col)) + ' ' +
    SUBSTRING(col, PATINDEX('%[0-9][A-Z]%', col) + 1, LEN(col)) AS output
FROM yourTable;

Demo

【讨论】: