【问题标题】:sql server SELECT CASEsql server 选择案例
【发布时间】:2016-07-09 20:30:09
【问题描述】:

所以我正在尝试格式化存储过程中的列,如果值为“boxter s”,我希望将其检索为“Boxter S”我已经对第一个大写字母进行了排序,但我遇到了麻烦如果值中有空格,则使用 CASE 语句将最后一个字母变为大写字母。并非所有值都有空格,因此 CASE 语句,如果有空格,则只有一个前面有一个字母。这是我目前所拥有的:

SELECT 
    CASE UPPER(LEFT(m.model, 1)) + LOWER(SUBSTRING(m.model, 2, LEN(m.manufacturer))) 
    WHEN m.model = % + ' ' 
    THEN UPPER(RIGHT(m.model, 1))
    END AS Model

【问题讨论】:

  • upper(right(field, 1)) 呢?
  • 我不希望每列的最后一个字母大写,除非有空格,所以如果 INPUT 参数是“hurrican”,我不希望它变成“Hurrican”。除非我错过了你的意思,在这种情况下你是否愿意跳过我的代码并告诉我你的意思?

标签: sql sql-server select case


【解决方案1】:

你想要这样的东西:

 select case when substring(model, len(model) - 2, 1) = ' ' then formatted
 else model end model

分别处理案例逻辑和格式。

【讨论】:

  • 我觉得我把它弄得太复杂了,谢谢它很好用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 2022-01-20
  • 2014-12-12
相关资源
最近更新 更多