在MSSQL中,",123,321,abc,cba,",如何将这个串的头和尾字符,去掉? 在MSSQL中,某字段中的值为:,123,321,abc,cba,如何将这个串的头和尾字符,去掉?当然,这个字段的值也可能为空。限用一行SQL完成。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select REVERSE(stuff(REVERSE(stuff(',123,321,abc,cba,',1,1,'')),1,1,'')) select stuff(REVERSE(ltrim(stuff(',123,321,abc,cba,',1,1,''))),1,1,'')--结果abc,cba,123,321 错误 再改下:select ltrim(REVERSE(stuff(REVERSE(ltrim(stuff(',123,321,abc,cba,',1,1,''))),1,1,''))) DECLARE @str nvarchar(2000)SET @str=',123,321,abc,cba,' SELECT CASE WHEN LEN(@str)>=2 THEN SUBSTRING(@str,2,LEN(@str)-2) ELSE '' END AS s 像这样...DECLARE @VAR NVARCHAR(100)SET @VAR=',123,321,abc,cba'select substring(@var,CHARINDEX(',',@VAR,2), len(@var)-charindex('c',REVERSE(@var))-CHARINDEX(',',@VAR,2)) declare @a char(50)select @A=',123,321,abc,cba,'select @A=substring(@a,2,len(@a)-2) DECLARE @STR VARCHAR(20)SELECT @STR =',123,321,abc,cba,' SELECT CASE WHEN LEN(@STR)>=2 THEN SUBSTRING(@STR,2,LEN(@STR)-2) ELSE '' END AS s ---我就是个呆子 SELECT CASE WHEN LEN(',123,321,abc,cba,')>=2 THEN SUBSTRING(',123,321,abc,cba,',2,LEN(',123,321,abc,cba,')-2) ELSE '' END DECLARE @STR VARCHAR(800)SET @STR=',123,321,abc,cba,'SELECT STUFF(STUFF(LTRIM(@STR),1,1,''),LEN(STUFF(LTRIM(@STR),1,1,''))-LEN(RIGHT(RTRIM(@STR),1))+1,1,'')123,321,abc,cba(所影响的行数为 1 行) --设字段名为f1 case when len(isnull(f1,''))>2 then right(left(f1,len(f1)-1),len(f1-2)) else f1 end select substring(',123,321,abc,cba,',2,15)针对列的话select substring(colname,2,15) from tbname SELECT CASE WHEN LEN(',123,321,abc,cba,')>=2 THEN SUBSTRING(',123,321,abc,cba,',2,LEN(',123,321,abc,cba,')-2) ELSE '' END 可以有多个字符串函数来处理的 求一条SQL语句 SQL server SQL 脚本执行慢问题 其实应该也挺简单的一个SQL语句。 [求助]关于SQL Reporting Service 的参数问题 急急!! sql复杂查询,在线等,非常急 求一条平分件数的SQL 帮我看看这个语句ALTER TABLE OPERATOR ALTER COLUMN oper_cd int IDENTITY(1,1) 數據庫遠程備份 请问各位装了SQL SERVER的网友,机子上有没有一个VNSAPI32.DLL的文件? 请教高手!!难题! sql 2008简单的插入数据问题 如何设置bit字段默认值为0
select REVERSE(stuff(REVERSE(stuff(',123,321,abc,cba,',1,1,'')),1,1,''))
--结果
abc,cba,123,321
select ltrim(REVERSE(stuff(REVERSE(ltrim(stuff(',123,321,abc,cba,',1,1,''))),1,1,'')))
SET @str=',123,321,abc,cba,'
SELECT CASE WHEN LEN(@str)>=2 THEN SUBSTRING(@str,2,LEN(@str)-2) ELSE '' END AS s
DECLARE @VAR NVARCHAR(100)
SET @VAR=',123,321,abc,cba'
select substring(@var,CHARINDEX(',',@VAR,2), len(@var)-charindex('c',REVERSE(@var))-CHARINDEX(',',@VAR,2))
declare @a char(50)
select @A=',123,321,abc,cba,'
select @A=substring(@a,2,len(@a)-2)
SELECT @STR =',123,321,abc,cba,' SELECT CASE WHEN LEN(@STR)>=2 THEN SUBSTRING(@STR,2,LEN(@STR)-2) ELSE '' END AS s
SELECT CASE WHEN LEN(',123,321,abc,cba,')>=2 THEN SUBSTRING(',123,321,abc,cba,',2,LEN(',123,321,abc,cba,')-2) ELSE '' END
DECLARE @STR VARCHAR(800)SET @STR=',123,321,abc,cba,'SELECT STUFF(STUFF(LTRIM(@STR),1,1,''),LEN(STUFF(LTRIM(@STR),1,1,''))-LEN(RIGHT(RTRIM(@STR),1))+1,1,'')123,321,abc,cba(所影响的行数为 1 行)
case when len(isnull(f1,''))>2 then right(left(f1,len(f1)-1),len(f1-2)) else f1 end
针对列的话
select substring(colname,2,15) from tbname
SELECT CASE WHEN LEN(',123,321,abc,cba,')>=2 THEN SUBSTRING(',123,321,abc,cba,',2,LEN(',123,321,abc,cba,')-2) ELSE '' END 可以有多个字符串函数来处理的