是否可以在单个语句中修剪列中的所有值?
我在 (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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
MS SQL 没有修剪功能。您需要同时使用 rTrim 和 lTrim。
MS SQL does not have a trim function. You'll need to use rTrim and lTrim together.
尝试
Try
从 SQL Server 2017 (14.x) 及更高版本开始,有 TRIM() 函数,因此;
会工作得很好。或者就我而言,我还想在修剪后将空字段清空。
Well as of SQL Server 2017 (14.x) and later there is a TRIM() function, so;
Will work fine. Or in my case I also want to null empty fields after trimming.
你可以尝试这个:
看看这里< /a> 在数据库中创建一个函数以更快地使用它
You could try this:
Take a look here to create a function inside your database to use it faster
试试这个:
UPDATE [table] SET [column1] = REPLACE([column1],'i:0#.w|',' ')
Try this:
UPDATE [table] SET [column1] = REPLACE([column1],'i:0#.w|',' ')
在 SQL Server 中,只有
RTRIM
和LTRIM
,但您可以同时使用它们:In SQL Server there is only
RTRIM
andLTRIM
, but you can use them both together:不完全是 - 没有可用的
TRIM()
函数,因此您必须使用RTRIM()
和LTRIM()
(右和左)分别修剪):Not quite - there's no
TRIM()
function available, so you have to useRTRIM()
andLTRIM()
(right- and left-trim, respectively):如果您希望为 null 情况返回空字符串,请检查 isnull
check for isnull if you want the empty string returned for the null case