![](/img/trans.png)
[英]SQL Server query to return 1 if value exist in a column else return 0
[英]if then else to return value in existing column
在Access 2016中使用SQL。 我需要添加一個名為“客戶”的新列。 該值基於“組名”中是否有數據,然后使用“組名”。 如果“組名”為空,則使用“描述”中的數據。
這是我正在嘗試使用的方法,但是沒有用。
SELECT iIf(ISempty([group name])= FALSE,[Group name],[Description]) as Customer
該解決方案必須使用SQL,因為它一旦在Access中工作就可以在其他軟件中使用。 我對此很陌生,因此將不勝感激。
IsEmpty函數 “返回指示變量是否已初始化的布爾值”。
當您將該函數應用於[Group name]
字段時,它將始終返回False,這意味着此IIf()
表達式將始終為您提供[Group name]
...
SELECT IIf(ISempty([group name])= FALSE,[Group name],[Description]) as Customer
您已經解釋說,實際上,您希望IIf()
為您提供[Group name]
而不為Null的信息,否則為[Description]
。 為此,您可以將IsNull()
替換為IsEmpty()
:
SELECT IIf(IsNull([Group name])=False, [Group name], [Description]) As Customer
以下是完成同一件事的其他幾種方法:
SELECT IIf([Group name] Is Null, [Description], [Group name]) As Customer
SELECT Nz([Group name], [Description]) As Customer
糟糕! 您實際上說的是“空白” ,但我將其解釋為“空” 。 如果空白也可能意味着一個空字符串,請在[Group name]
包含Null或一個空字符串時使用它為您提供[Description]
。
SELECT IIf(Len([Group name] & '') = 0, [Description], [Group name]) As Customer
在ANSI SQL中,這可以通過兩個更新語句來完成:
-- First replace empty [Customer] with [Group Name]
Update [TargetTable] Set [Customer] = [Group Name]
Where [Customer] IS NULL OR [Customer] = '';
-- Then replace still empty [Customer] with [Description]
Update [TargetTable] Set [Customer] = [Description]
Where [Customer] IS NULL OR [Customer] = '';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.