我有一个名为 TableReason 的表,其中有一列名为 Reason
Reason 数据类型是 varchar(100) 并且包含这样的值 2,-2,22,33,0,2 用于一行

我需要为这个表写一个更新语句来完成:只需要用逗号分割的第一个值,即。 2只需要。

 update TableReason
 set reason=--please help me on this.

最佳答案

...
set reason=CASE CHARINDEX(',', reason)
                         WHEN 0 THEN reason
                         WHEN 1 THEN ''
                         ELSE LEFT(reason, CHARINDEX(',', reason)-1)
           END

这涉及3种情况
  • 没有逗号
  • 第一个字符是逗号
  • 一个数字后跟一个逗号
  • 关于sql-server-2005 - 拆分字符串。获取拆分 SQL Server 2005 的第一个值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15019037/

    10-12 18:06