sql-server - case 表达式只显示一次
问题描述
我有一个遇到困难的案例表达:
WHEN @CustomerID = 3 AND @OrderID = 2 AND @Name IN ('Hello') THEN 'Regular'
WHEN @CustomerID = 3 AND @OrderID = 2 AND @Telephone = 1 AND @Name IN ('Hello') THEN 'Business'
如果我有两个语句,它只会返回“常规”,但如果我取出“常规”,它会显示商业语句。我究竟做错了什么?
解决方案
如果您想要其中一个或两个,则它需要是两个单独的列,或者如果您想要一个列,则在其中包含两个输出:
任何一个:
case WHEN @CustomerID = 3 AND @OrderID = 2 AND @Name IN ('Hello') THEN 'Regular' end,
case WHEN @CustomerID = 3 AND @OrderID = 2 AND @Telephone = 1 AND @Name IN ('Hello') THEN 'Business' end
或者:
WHEN @CustomerID = 3 AND @OrderID = 2 AND @Telephone = 1 AND @Name IN ('Hello') THEN 'Regular, Business'
WHEN @CustomerID = 3 AND @OrderID = 2 AND @Name IN ('Hello') THEN 'Regular'
推荐阅读
- java - TypeAdapterFactory 的 Lambda 表达式
- python - 如何更改 Django 日志记录的日期格式?
- r - 确定 R 中的所有条件都满足哪个 ID
- browser-history - 使用 post-redirect-get 的自我更新表单的历史记录被破坏
- python-3.x - pyinstaller 不会用 ico 和 noconsole 编译
- python - 更新张量中的切片或列
- python - 从嵌套字典创建一个 Tall 格式的数据框
- ios - 将按钮添加到屏幕右侧
- java - For of to forEach -> lambda 表达式
- full-text-search - Mariadb 查询使用 match() against() 时内存不足