早上好,我需要删除空值和从字符字段输出的第一个字符,其值如下: NULL、A12345、A123456、A123456789、6-10之间的字节。
是否有一种将isnull和right(len并发)结合起来的方法?这是首选的方法,因为需要在下游进行一些额外的数据编译,myColum-1将作为主键使用。
对此尝试了多个变体,但没有成功,也使用了字符串,并产生了语法错误。
select isnull(right([my column],''len[my column]-1) [my column]这将删除空值。
[my column] = isnull([my column],'') 但这不会删除第一个字符。
right([my column], len([my column]-1) [my column]发布于 2019-10-03 15:24:46
您的查询应该如下所示:
SELECT ISNULL(RIGHT([Value], LEN([Value])-1), ' ') AS NewValue FROM MyTable您可以从这里检查执行情况:
MS Server 2017架构设置
CREATE TABLE MyTable
(ID int,
Value varchar(max),
)
INSERT INTO MyTable (ID,Value)VALUES(1,NULL)
INSERT INTO MyTable (ID,Value)VALUES(2,'A12345')
INSERT INTO MyTable (ID,Value)VALUES(3,'A123456')
INSERT INTO MyTable (ID,Value)VALUES(4,'A123456789') 查询1
select ISNULL(right([Value], len([Value])-1), ' ') [Value] from MyTable| Value |
|-----------|
| |
| 12345 |
| 123456 |
| 123456789 |发布于 2019-10-03 15:19:02
错括号问题,这应该是可行的。
right([my column], len([my column])-1) [my column]也可以使用STUFF函数
STUFF([my column], 1,1,'') [my column]发布于 2019-10-03 15:23:11
尝尝这个,
right([my column], len([my column])-1) [my column]-1的位置错了。
https://stackoverflow.com/questions/58221891
复制相似问题