我有一个带有字段ID的表。
以下是一些示例值:
我有一个观点我可以获取这些记录,我需要删除99/88(在我的情况下它是一个预先知道的前缀是99或88 ...请记住,有效的id也是让我们说需要转换为8888的888888!
我知道如果所有记录都有前导99或88我可以使用:
SELECT RIGHT(MyColumn, LEN(MyColumn) - 2) AS MyTrimmedColumn
如果有领先的99/88,我将如何包含条件否则不进行修剪?
预期输出为:
该函数应该是select查询的一部分,而不是一个独立的查询(问题的例子 - 字段ID)!
SELECT
ISNULL(ProcId,0) ProcId,
ISNULL(ID,'') ID,
...
答案 0 :(得分:4)
SELECT case when mycolumn >= 880000
then RIGHT(MyColumn, LEN(MyColumn) - 2)
else mycolumn
end AS MyTrimmedColumn
或
SELECT case when mycolumn between 880000 and 889999
then MyColumn - 880000
when mycolumn between 990000 and 999999
then MyColumn - 990000
else mycolumn
end AS MyTrimmedColumn
答案 1 :(得分:0)
SELECT RIGHT(MyColumn, LEN(MyColumn) - 2) AS MyTrimmedColumn from table-name
where id like '99%'