1

クライアントのラベルは次のもので構成されます。

  • 彼の肩書き(Miss/Mr/Mrs/Ms)、
  • 彼のファーストネーム、
  • 彼の姓。

最大サイズは 20 文字です。

  • ラベルのサイズが 20 を超える場合、名前は最初の文字にドットを付けて短縮されます (Nancy は N になります)。
  • ラベル サイズがまだ 20 より大きい場合は、ラベル全体が 20 文字に切り捨てられます。

私はこれをしました:

SELECT
    UPPER(
        CASE WHEN 
            LENGTH(CONCAT(clientTitle, " ", clientFirstname, " ", clientSurname)) > 20
        THEN 
            CONCAT(clientTitle, " ", CONCAT(SUBSTR(clientFirstname, 1, 1), "."), " ", clientSurname)
        ELSE 
            CONCAT(clientTitle, " ", clientFirstname, " ", clientSurname)
        END
    ) AS label
FROM Client

それは機能しますが、私にはあまり良く見えません。連結文は3回書いて、必ず2回作ります。このクエリをより適切でパフォーマンスの高いものにする方法を知っていますか?

4

1 に答える 1