Tay*_*min 0 sql sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012
我有第01列中的值,我希望将其转换为第02列中的值,从结尾删除所有零.有没有办法在SQL服务器中执行此操作?
Column 01 Column 02
20100000 201
29050000 2905
Run Code Online (Sandbox Code Playgroud)
谢谢你的期待.
对于正整数,只能使用:
CREATE TABLE #tab(col1 INT);
INSERT INTO #tab(col1) VALUES (20100000),(29050000);
SELECT col1, REVERSE(REVERSE(col1) + 0) + 0 AS trimmed
FROM #tab;
Run Code Online (Sandbox Code Playgroud)
输出:
??????????????????????
? Col1 ? trimmed ?
??????????????????????
? 20100000 ? 201 ?
? 29050000 ? 2905 ?
??????????????????????
Run Code Online (Sandbox Code Playgroud)
这个怎么运作:
0- >隐式转换为INT.你可以CAST/CONVERT用来明确!0- >强制转换为INT 20100000- > "0000102"- > 102- > "201"- >201
添加了对负整数的支持:
SELECT col1, SIGN(col1) * REVERSE(REVERSE(ABS(col1)) + 0) AS trimmed
FROM #tab;
Run Code Online (Sandbox Code Playgroud)