是否可以在单个语句中修剪列中的所有值?

发布于 2024-12-11 02:05:27 字数 251 浏览 0 评论 0原文

我在 (MS) SQL 数据库中有一个表,其中有一个 Id 列(identity, int)和一个 Name 列(varchar(250))。 然而,名称列中的值包含(相当随机的)前导和尾随空格,因为我认为它们是从“其他东西”剪切和粘贴的(不知道是什么!)。

T-SQL 是否可以执行以下操作:

update MyTable set Name = trim(name)

并使用修剪后的值更新所有名称列?

I've a table in a (MS) SQL database which has an Id column (identity, int) and a Name column (varchar(250)).
However, the values in the name column contain (fairly random) leading and trailing spaces as I think they were cut and pasted from "something else" (no idea what!).

Is it possible in T-SQL to do the following:

update MyTable set Name = trim(name)

and have it update all the Name columns with the trimmed value?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

毁梦 2024-12-18 02:05:27

MS SQL 没有修剪功能。您需要同时使用 rTrim 和 lTrim。

update MyTable set Name = lTrim(rTrim(name))

MS SQL does not have a trim function. You'll need to use rTrim and lTrim together.

update MyTable set Name = lTrim(rTrim(name))
以可爱出名 2024-12-18 02:05:27

尝试

update MyTable set Name = LTRIM(RTRIM((name))

Try

update MyTable set Name = LTRIM(RTRIM((name))
人海汹涌 2024-12-18 02:05:27

从 SQL Server 2017 (14.x) 及更高版本开始,有 TRIM() 函数,因此;

UPDATE MyTable set Name = TRIM(name)

会工作得很好。或者就我而言,我还想在修剪后将空字段清空。

UPDATE MyTable set Name = NULLIF(TRIM(name), '')

Well as of SQL Server 2017 (14.x) and later there is a TRIM() function, so;

UPDATE MyTable set Name = TRIM(name)

Will work fine. Or in my case I also want to null empty fields after trimming.

UPDATE MyTable set Name = NULLIF(TRIM(name), '')
隱形的亼 2024-12-18 02:05:27

你可以尝试这个:

UPDATE MyTable
SET Name = LTRIM(RTRIM(Name))

看看这里< /a> 在数据库中创建一个函数以更快地使用它

You could try this:

UPDATE MyTable
SET Name = LTRIM(RTRIM(Name))

Take a look here to create a function inside your database to use it faster

夏花。依旧 2024-12-18 02:05:27

试试这个:

UPDATE [table] SET [column1] = REPLACE([column1],'i:0#.w|',' ')

Try this:

UPDATE [table] SET [column1] = REPLACE([column1],'i:0#.w|',' ')

半寸时光 2024-12-18 02:05:27

在 SQL Server 中,只有 RTRIMLTRIM,但您可以同时使用它们:

update MyTable set Name = RTRIM(LTRIM((name))

In SQL Server there is only RTRIM and LTRIM, but you can use them both together:

update MyTable set Name = RTRIM(LTRIM((name))
横笛休吹塞上声 2024-12-18 02:05:27

不完全是 - 没有可用的 TRIM() 函数,因此您必须使用 RTRIM()LTRIM() (右和左)分别修剪):

UPDATE MyTable set Name = rtrim(ltrim(name))

Not quite - there's no TRIM() function available, so you have to use RTRIM() and LTRIM() (right- and left-trim, respectively):

UPDATE MyTable set Name = rtrim(ltrim(name))
任谁 2024-12-18 02:05:27

如果您希望为 null 情况返回空字符串,请检查 isnull

 UPDATE MyTable set Name = rtrim(ltrim(IsNull(name,'')))

check for isnull if you want the empty string returned for the null case

 UPDATE MyTable set Name = rtrim(ltrim(IsNull(name,'')))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文