在SQL SERVER里想写个函数判断字符串,写到这不会写了,晕~(只有5分了!)

miaomiaoga 2006-12-14 11:58:38
想运行select dbo.[Func_GetCountOfColorsByColorName]('103:468:49F:996')就知道里面有多少个引号,但不懂怎么去判断字符串,:(

ALTER FUNCTION [dbo].[Func_GetCountOfColorsByColorName]
(
@ColorName nvarchar(4000)
)
RETURNS numeric(18)
AS
BEGIN
DECLARE @Result numeric(18)
DECLARE @Length numeric(18)

IF (@ColorName!='' AND @ColorName is not null)
BEGIN
SET @Length = Len(@ColorName)
WHILE @Length>0
BEGIN
--CHARINDEX(':', @ColorName, 1)
--写到最重要的部分不懂了,希望大家指点一下,应该怎么样去一个个字母去数然后判断是不是引号呢?

SET @Result = @Length
SET @Length = @Length -1
END
END

RETURN @Result

END
...全文
164 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
miaomiaoga 2006-12-14
  • 打赏
  • 举报
回复
哇。。回答得好快。。。两种都可以呢。。。好像是三楼的速度快些。。但都差不多。。。能完成就行了。。。谢谢楼上的各位DX。。:)
akuzou 2006-12-14
  • 打赏
  • 举报
回复
候查字符串中有多少个:符号??
试试:
declare @str varchar(1000)
set @str='123:34219:43::2'
select len(@str)-len(replace(@str,':',''))
leo_lesley 2006-12-14
  • 打赏
  • 举报
回复
set @start = 1
set @num = 0
WHILE @start <= @Length
begin
@ColumnName = substring( @ColorName , @start , 1)
set @start = @start + 1
if @ColumnName = ';'
set @num = @num + 1
end

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧