SQL - 基于记录中的布尔值更改查询输出
Posted
技术标签:
【中文标题】SQL - 基于记录中的布尔值更改查询输出【英文标题】:SQL - Alter query output based a boolean in the record 【发布时间】:2017-07-12 15:45:32 【问题描述】:我有一个包含员工联系信息的 MS Access 表,员工维护自己的记录,任何人都可以访问数据库。我需要两个返回电话列表的查询。第一个只是简单地返回所有名称和数字。
SELECT LastName, FirstName, HomePhone, MobilePhone FROM StaffDetails ORDER BY ASC;
对于第二个,表中有一个布尔列,称为 PrivateNumbers。如果工作人员已将他们的号码设置为私人号码,我希望查询将它们标记为私人号码。那么,我是否可以编写一个 SQL 查询来查看布尔值,然后在查询结果中将 HomePhone 和 MobilePhone 更改为“Private”?
理论上,如果任何员工查看电话列表,私人号码就会被列出。如果管理层看,他们就会看到一切。
【问题讨论】:
这对techonthenet.com/access/functions/advanced/switch.php有帮助吗? 查看IIF()
条件逻辑函数。
【参考方案1】:
您必须对此进行测试,因为我无权访问您的数据库,但在您的 sql 中添加 case 语句可以解决您的问题。
SELECT
LastName
,FirstName
,IIF(PrivateNumbers, 'Private',HomePhone) AS HomePhone
,IIF(PrivateNumbers, 'Private',MobilePhone) AS MobilePhone
FROM StaffDetails
ORDER BY ASC;
【讨论】:
不要认为 access 在 SQL 中支持大小写;他们称之为开关之类的:***.com/questions/14920116/… 得到一个循环引用错误,最后是“AS HomePhone”。从两个语句中删除了那个 AS 并且它工作得很好。非常感谢。以上是关于SQL - 基于记录中的布尔值更改查询输出的主要内容,如果未能解决你的问题,请参考以下文章