在存储过程中,我有这个字段
LTRIM(ISNULL(O.Column1, ''))
如果在值的末尾有一个破折号(-),请删除它。仅在开始/结束处存在破折号的情况下。
有什么建议吗
编辑:
microsoft sql server 2014 12.0.5546.0版
预期产量:
1)input: "abc-abc" //output: "abc-abc"
2)input: "abc-" //output: "abc"
3)input: "abc" //ouput: "abc"
在存储过程中,我有这个字段
LTRIM(ISNULL(O.Column1, ''))
如果在值的末尾有一个破折号(-),请删除它。仅在开始/结束处存在破折号的情况下。
有什么建议吗
编辑:
microsoft sql server 2014 12.0.5546.0版
预期产量:
1)input: "abc-abc" //output: "abc-abc"
2)input: "abc-" //output: "abc"
3)input: "abc" //ouput: "abc"
3条答案
按热度按时间92vpleto1#
我想你可能被这里的字符串操作卡住了。
这个
CASE
这里的表达式取LTRIM/RTRIM
从列中选择结果并检查两端是否有破折号,然后检查两端是否有破折号。如果有破折号,它会把它们去掉。它并不漂亮,在堆积如山的数据上也不会有很好的表现,但可以满足您的需要。数据设置:
查询:
结果:
sql fiddle演示
tmb3ates2#
因为数据库没有被提及,这里是你如何做它(而不是找到它)
sql服务器
删除t-sql中字符串的最后一个字符?
Oracle
删除sql plus中字符串的最后一个字符
postgresql语言
postgresql:如果列以减号结尾,则删除文本字段中的最后一个字符
mysql数据库
在mysql中去掉列的最后两个字符
uqdfh47h3#
可以使用left函数和substring来实现结果。