postgresql - 如何遍历表动态生成case语句
问题描述
我有一个两列的表,如下所示
顾客姓名 | 顾客类型 |
---|---|
吉姆·史密斯 | 零售 |
南希·琼斯 | 批发的 |
迈克·威廉姆斯 | 零售 |
... | ... |
我希望能够遍历表以动态生成案例语句,如下所示
CASE WHEN CUSTOMER_NAME = 'Jim Smith' THEN 'Retail'
WHEN CUSTOMER_NAME = 'Nancy Jones' THEN 'Wholesale'
WHEN CUSTOMER_NAME = 'Mike Williams' THEN 'Retail'
...
ELSE NULL END AS CUSTOMER_TYPE
做这个的最好方式是什么?
解决方案
这有点奇怪。您编写的 SQL 类似于说 -
select case when CUSTOMER_NAME = CUSTOMER_NAME then CUSTOMER_TYPE end as CUSTOMER_TYPE
customer_name 始终等于 customer_name。您不妨将其重写为
select CUSTOMER_TYPE
查看您的完整查询以查看您这样做是否有原因可能会有所帮助。但是这里的 case 语句大多是不必要的。
推荐阅读
- php - 代码引发的神秘异常似乎甚至不在我的存储库中
- asp.net - jQuery DataTable 不适用于 ListVew ASP.NET
- javascript - 如何制作可重用的功能?
- javascript - 如何使用 $.Post Ajax Request 在列表中添加人员或组类型的字段?我不断收到错误的请求(Sharepoint)
- php - 如何使用php压缩视频文件的大小,同时上传到支持ffmpeg的服务器?
- javascript - 在 Electron App 的 sudo.exec 中编写代码
- c++ - 无法实现队列
> 在 C++ 中 - html - 子组件向父组件发出的事件的奇怪行为
- node.js - 使用全局配置扩展模块而不破坏当前使用
- linux - Trying to assemble an IA32 assembly file and getting operand mismatch error for 'call'