在 SQL 服务器中获取列时使用内置公式追加字符
Append Characters using built-in formula while column fetch in SQL Server
我得到了一个场景,即给定单元格中的 select 4 个字符(最后 4 个)
我正在使用 Case 表达式手动完成。
我需要自动化它而不是使用 Cases
我做到了。
SELECT CASE WHEN LEN(ticket_number) >= 4 THEN
'x' + RIGHT(ticket_number,4)
WHEN LEN(ticket_number) = 3 THEN
'x0' + ticket_number
WHEN LEN(ticket_number) = 2 THEN
'x00' + ticket_number
WHEN LEN(ticket_number) = 1 THEN
'x000' + ticket_number
ELSE
''
END AS ticket_number
FROM tickets
WHERE ticket_number <> ''
ORDER BY date DESC
我需要优化这个查询。
你的意思是这样?
'x' + RIGHT('000'+ticket_number,4) AS ticket_number
如果我硬编码一个 2 个字符的值:
SELECT 'x' + RIGHT('000'+'12',4) AS ticket_number
我得到:
x0012
所以这个解决方案绝对有效。
select tic + REPLICATE(0,4-len(tic)) 来自 tick
我得到了一个场景,即给定单元格中的 select 4 个字符(最后 4 个)
我正在使用 Case 表达式手动完成。 我需要自动化它而不是使用 Cases
我做到了。
SELECT CASE WHEN LEN(ticket_number) >= 4 THEN
'x' + RIGHT(ticket_number,4)
WHEN LEN(ticket_number) = 3 THEN
'x0' + ticket_number
WHEN LEN(ticket_number) = 2 THEN
'x00' + ticket_number
WHEN LEN(ticket_number) = 1 THEN
'x000' + ticket_number
ELSE
''
END AS ticket_number
FROM tickets
WHERE ticket_number <> ''
ORDER BY date DESC
我需要优化这个查询。
你的意思是这样?
'x' + RIGHT('000'+ticket_number,4) AS ticket_number
如果我硬编码一个 2 个字符的值:
SELECT 'x' + RIGHT('000'+'12',4) AS ticket_number
我得到:
x0012
所以这个解决方案绝对有效。
select tic + REPLICATE(0,4-len(tic)) 来自 tick