我们需要以下逻辑来截断超过56个字符的任何内容。我们总是希望删除我们的解决方案所做的波形符,但我们不知道如何将SomeId的长度限制为56.
CASE WHEN CHARINDEX('~', isnull(SomeID,''))= 0
THEN '1'
ELSE isnull(RIGHT(isnull(SomeID,''),
LEN(isnull(SomeID,'')) - CHARINDEX('~', isnull(SomeID,''))), '') END
答案 0 :(得分:0)
如果我理解正确,请使用LEFT()
:
LEFT(CASE WHEN SomeId LIKE '%~%'
THEN RIGHT(SomeID, LEN(SomeId) - CHARINDEX('~', SomeId))
ELSE '1'
END, 56)
我稍微重新排列了逻辑以简化代码。您不需要NULL
的所有检查。