需要SQL帮助 我有一个EmployeeID表,如下所示
11
22
1
55
2
我想修剪所有行的最后几位并将输出作为
1
2
1
5
2
答案 0 :(得分:1)
试试这个 -
UPDATE your_table SET EmployeeID=SUBSTR(TO_CHAR(EmployeeID),1,1);
答案 1 :(得分:0)
使用这个
CASE WHEN LEN(ColumnName)>1 THEN LEFT(ColumnName, LEN(ColumnName)-1) ELSE ColumnName END
答案 2 :(得分:0)
将int转换为varchar并使用right选择所需数量的数字。
select cast(right(1,cast(EmployeeID as varchar)) as int)
实际上只是在做
select right(1,employeeId) should work too.
如果你想更新表,那么
update table
set employeeid = right(1,employeeId)
答案 3 :(得分:0)
UPDATE tableName
SET EmployeeID = LEFT (EmployeeID, CASE WHEN LEN(EmployeeID) > 1 THEN LEN(EmployeeID) - 1 ELSE 1 END)
答案 4 :(得分:0)
大多数数据库都支持left()
功能。它会自动将整数转换为字符串,然后将结果返回到整数。所以最简单的陈述是:
update t
employeeId = left(employeeId, 1);
注意:在某些数据库中,这可能是substr(employeeId, 1, 1)
或substring(employeeId, 1, 1)
。
此外,此语句执行两次隐式类型转换。
如果要将where employeeId like '__%'
限制为实际更改的行,也可以添加update
。