sql - 将 case/when 插入到 select 语句中
问题描述
在我的消息正文中读取时,我试图将@ClientID
(int) 更改为字符串。这是我到目前为止所拥有的:
BEGIN
SELECT @message = 'error'
SELECT @message = @message + 'client:' + @ClientID + char(13)
END
我如何在这个 select 语句中输入一个案例来阅读?
CASE
WHEN @ClientID = 1 THEN 'McDonalds'
WHEN @ClientID = 2 THEN 'BK'
WHEN @ClientID = 3 THEN ....etc
END
解决方案
即使您可以编写一个巨大的CASE
子句,就像您正在做的那样,我强烈建议您在表格中使用一个简单JOIN
的client
...假设您有一个。就像是:
select m.message, c.name
from message m
join client c on m.client_id = c.id
where c.id = @ClientID
这更短,工作量更少,更不容易出错,并且易于阅读。
推荐阅读
- javascript - 对我的 socket.io 服务器的请求中未定义 HTTP 协议版本?
- android - ConstraintLayout - 匹配另一个视图的约束,但添加边距以使其更大
- python - 如何将列表列表转换为字典
- python - 使用 Vispy 为实时信号绘图添加标签
- c++ - 无法检查 QT MYSQL 中是否存在表
- css - 使用 root:将 svg 的填充属性管理为来自 css 变量的 data-uri
- python - 如何在 numba njit 装饰器中指定 dict 类型和 timeit 不重用编译版本
- python - setuptools-scm - 获取最新的标记版本
- python - 使用torch.multiprocessing.spawn时如何修复“无法腌制'_thread.lock'对象”错误
- windows - Octave:隐藏复杂绘图的窗口;改为打印到文件