gpt4 book ai didi

sql - 在 firebird 中使用 iif 更新 varchar 字段时出现空格

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

执行此查询时我看到奇怪的结果

update sd_invodt set line_type=iif(is_promo=1, 'campaign', 'item')

line_type 字段中的值将为 "item " .值中有空格。
但是当我执行这个查询时
update sd_invodt set line_type='item'

我没有空格。

现在我必须使用修剪作为解决方法
update sd_invodt set line_type=trim(iif(is_promo=1, 'campaign', 'item'))

我使用最新的火鸟 2.5。 Line_type 是一个 varchar(15)。

这是 Firebird 中的错误吗?

编辑

我已经使用新数据库进行了测试,问题仍然存在。

最佳答案

iif()的结果类型取决于输入,如果是字符串,结果类型似乎是 char(x)哪里x是最长输入字符串的长度。因此"item"将填充 4 个空格以使其与“广告系列”一样长。我认为这是设计使然,但您可能想输入一张前往 FB issuetracker 的票。 .

所以iif()返回 "item "如果第一个参数为 false 并且您将空格存储到 varchar场,他们被保留下来。

关于sql - 在 firebird 中使用 iif 更新 varchar 字段时出现空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19739310/

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