在PostgreSQL中有一种更快的方法来基本上在几行中执行if吗?
说我有一张桌子
ticket | row | archived
1 | 1 | true
1 | 2 | true
1 | 3 | true
2 | 1 | false
2 | 2 | true
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以在ticket =的列下面做一个if语句?因此,ticket = 1的地方是真的
true && true && true = true
Run Code Online (Sandbox Code Playgroud)
并且ticket = 2将是假的,因为
false && true = false
Run Code Online (Sandbox Code Playgroud)
或者我应该坚持下去
SELECT ( (SELECT COUNT(*) FROM table WHERE ticket = 1)
= (SELECT COUNT(*) FROM table WHERE ticket = 1 AND archived = true) )
Run Code Online (Sandbox Code Playgroud) 背景: 我有一张叫做汽车的桌子,里面装着很多二手车,约100万行.该表有170多列.该表仅针对各列进行索引.大多数列都是布尔值(例如has_automatic_gearbox等),其余的是字符串和数字(例如颜色和价格).这些车在一个视图中显示,我在170个中使用了大约80列.
我的问题: 所以我的问题是,它是否会对性能产生影响,是否在搜索时只选择表格中的80列,或者另一方面我创建了一个仅包含80列的新表格我需要,而不是总共170列?换句话说,它是否会对性能产生影响,表是否包含未被选中的列?