クライアントのラベルは次のもので構成されます。
- 彼の肩書き(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回作ります。このクエリをより適切でパフォーマンスの高いものにする方法を知っていますか?