gpt4 book ai didi

sql - 如何在 SQL 语句语法中执行内联 if-then

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

我正在尝试将我的电子邮件附加到我的@email 字符串中,传入了一个错误的@status。它在没有我注释掉的行的情况下工作。我想我很接近,但语法错误。 @override_email 为空。

DECLARE @retval INT
DECLARE @email nvarchar(200)
DECLARE @override_email nvarchar(200) = null
DECLARE @status INT = 2
DECLARE @in_customer_id INT = 160308

SET @email = COALESCE(@override_email, (
SELECT
COALESCE(CustomerDetail.Email, '')
/*+ (if @status NOT IN (3,4,5) ', alex@email.com')*/
FROM
tbl_customer_detail CustomerDetail
WHERE
CustomerDetail.customer_id = @in_customer_id))
select @email

最佳答案

您可以使用 CASE 来做到这一点表达式:

DECLARE @retval INT
DECLARE @email nvarchar(200)
DECLARE @override_email nvarchar(200) = null
DECLARE @status INT = 2
DECLARE @in_customer_id INT = 160308

SET @email = COALESCE(@override_email, (
SELECT
COALESCE(CustomerDetail.Email, '')
+ case when @status NOT IN (3,4,5) then ', alex@email.com' else '' end
FROM
tbl_customer_detail CustomerDetail
WHERE
CustomerDetail.customer_id = @in_customer_id))
select @email

关于sql - 如何在 SQL 语句语法中执行内联 if-then,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12186693/

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