【发布时间】:2016-06-26 17:50:37
【问题描述】:
我使用 SQL Server。在我的数据库中,我有一列UniqueId,即nvarchar,其中包含带有字符和数字的字符串。我想创建另一列 (CleanColumn),仅从列 UniqueId 中获取数字,如果没有数字则使用整个字符串。我也应该从列UniqueId 中丢失前导零。
在 T-SQL 中可以吗?或者我必须为此使用 C#?
UniqueId 列包含例如::
A01943486
102-2009-1008
A-146
0622008081A
Ematol OPBG
Yavuz1098083
Yeter1391671
YKM
Zabit1446123
Zekerya13128
Zeynep1045201
【问题讨论】:
-
你能解释一下这个改变的目的吗?如果您想保留全字母记录,那么您的新列应该仍然是一个 nvarchar 列,具有与当前列相同的问题 (?)
-
感谢您的关注。这只是一个客户请求,它不是那么合乎逻辑。他们想按 CleanColumn(作为数字)对报告进行排序,但许多字符串在 UniqueId 列中没有数字,因此他们也必须包含字符串。
-
因此可以放弃排序的整个目的。可能更好的方法是在每个数字和字符串前面用零填充列,然后进行排序。你可以从这个问题中得到一些想法:Formatting Numbers by padding with leading zeros in SQL Server
标签: c# sql-server