我正在尝试在'-'之后留下零。 我确实在这里检查了其他答案,但没有帮助我。
这是桌子:
+---------+
| Job |
+---------+
| 3254-1 |
| 3254-25 |
| 3254-6 |
+---------+
如果最后的值在1到9之间,我需要在'-'之后留个零。
我希望结果是:
+---------+
| Job |
+---------+
| 3254-01 |
| 3254-25 |
| 3254-06 |
+---------+
答案 0 :(得分:2)
您可以将CHARINDEX()
,SUBSTRING()
和REPLACE()
用作:
CREATE TABLE Jobs(
Job VARCHAR(45)
);
INSERT INTO Jobs VALUES
('3254-1'),
('3254-25'),
('3254-6');
SELECT CASE
WHEN CHARINDEX('-', Job, 1)+1 < LEN(Job) THEN Job
ELSE
REPLACE(Job, '-', '-0')
END AS Job
FROM Jobs;
结果:
+----+---------+
| | Job |
+----+---------+
| 1 | 3254-01 |
| 2 | 3254-25 |
| 3 | 3254-06 |
+----+---------+
答案 1 :(得分:1)
如果要更新,我认为这是最简单的方法:
update t
set job = replace(job, '-', '-0')
where job like '%-_';
此问题已大大简化,因为您仅添加了一个填充字符。
答案 2 :(得分:0)
如果您使用的是
SELECT DISTINCT(locations.id), images.date_uploaded, images.id FROM locations
JOIN images on locations.id = images.location_id
WHERE images.creator_type = 'User'
AND images.creator_id = 105
ORDER BY images.date_uploaded, images.id
版,则2012+
函数可以用作:
format