gpt4 book ai didi

SQL 字符串连接,仅当 column 不为 null 时才以 ',' 分隔

转载 作者:行者123 更新时间:2023-12-01 01:22:54 24 4
gpt4 key购买 nike

我想在我的数据库中更新字符串( varchar )列。我想连接 ',' + 值。

这是有效的,但如果数据库列中的值为空,我不想添加 ',' (逗号)。

开头有逗号是没有意义的。

UPDATE ImportState
SET ClientValidationRemark = ClientValidationRemark + ',' + @ClientValidationRemark
WHERE Id=@ImportId

当然,如果值不为空,我每次都想添加逗号。你知道任何简单,干净的方法来做到这一点吗?我总是更新一行, @ImportId是主键。

最佳答案

好吧,让我首先说将分隔字符串保留在单个列中是一种糟糕的数据库设计,只有一个异常(exception):当数据从未在 sql 中使用而在应用程序中需要作为分隔字符串时。在超过 16 年的编程生涯中,我只存储过一次这样的值,而且正是这种情况。

但是,如果您选择存储分隔值,这里有一些很容易做到的事情:

UPDATE ImportState
SET ClientValidationRemark = ISNULL(NULLIF(ClientValidationRemark, '') + ',', '') +
@ClientValidationRemark
WHERE Id=@ImportId

利用将字符串连接到空值将导致空值的事实(注意:仅当您使用 string concatenation operator ( + ) 时,而不是当您使用内置函数时 concat ),我使用了 NULLIF转换 ClientValidationRemark 中的空字符串值为空,然后 ISNULL转换 null + ', '回到空字符串。

关于SQL 字符串连接,仅当 column 不为 null 时才以 ',' 分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30913374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com