gpt4 book ai didi

sql - 寻找凌乱的 SQL ISNULL/NULLIF 的替代方案

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

我有一个在 SQL Server 2012 上运行的 SQL 查询,它需要比较一个位值,如果该值为 1,则返回一个字符串,如果该值为 0,则返回一个空字符串。

最初我将它作为这样的 CASE 语句:

CASE WHEN myBit = 0 THEN 
-- do other comparisons etc to build up the return string.
+'myString'
ELSE
-- do other comparisons etc to build up the return string.
'' END

问题是“做其他”部分中的所有代码都是相同的。如果位为零,我想要做的就是将一个字符串附加到返回值,如果它是 1,则什么都没有。

所以我将它重构为只有一次公共(public)代码,然后像这样在末尾附加到字符串:

-- do other comparisons etc to build up the return string. +
ISNULL(NULLIF(Cast(ISNULL(CAST(NULLIF(myBit, 0) AS NVARCHAR), 'myString') AS varchar),'0'),'')

但是,由于需要 CAST 语句,上述内容看起来非常困惑。

我正在寻找一种干净整洁的方法来做到这一点,但已经没有想法了 - 有人有更好的方法来实现这一点吗?谢谢。

最佳答案

只需内联添加您的 CASE 语句。当mybit=1时别忘了返回一个空字符串,否则整个返回NULL。

Select 
-- do other comparisons etc to build up the return string.
+ Case When @mybit=0 Then mystring else '' End

关于sql - 寻找凌乱的 SQL ISNULL/NULLIF 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14778036/

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