字符串数字提取问题

Py_business124 2012-03-29 10:01:48


set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER function [dbo].[tdx_te](@dy_type int,@dy_name varchar(8),@dy_fw varchar(30))
returns varchar(4)
as
begin
declare @result varchar(4)
declare @temp varchar(30)


if @dy_name='dd'
begin
select @temp= dy_dd from tdxdb_test
if charindex(','+@dy_fw+',' ,ltrim(@temp))>0
begin
select @result=dy_tdx from tdxdb_test
where @dy_type=dy_type and isdel=0
end
end
return @result
end

表结构为:
dy_type dy_tdx dy_dd
1 买入 11,12


select dbo.tdx_te(1,'dd',12) 返回却为NULL,哪里有误??
...全文
69 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Py_business124 2012-03-29
  • 打赏
  • 举报
回复
4楼的大哥,一时激动忘给分了!都给5楼了。下次随便回复个一定给分!
Py_business124 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

SQL code
select * from tdxdb_test where dy_type=@dy_type and isdel=0 and charindex(','+@dy_fw+',' ,','+ltrim(dy_dd)+',')>0

不就这意思吗,搞那么复杂。
[/Quote]


BINGO!谢谢老大!!
黄_瓜 2012-03-29
  • 打赏
  • 举报
回复
select * from tdxdb_test where charindex(','+@dy_fw+',' ,','+ltrim(dy_dd)+',')>0
Vidor 2012-03-29
  • 打赏
  • 举报
回复
select * from tdxdb_test where dy_type=@dy_type and isdel=0 and charindex(','+@dy_fw+',' ,','+ltrim(dy_dd)+',')>0

不就这意思吗,搞那么复杂。
Vidor 2012-03-29
  • 打赏
  • 举报
回复
if charindex(','+@dy_fw+',' ,','+ltrim(@temp)+',')>0
Py_business124 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

可能if charindex(','+@dy_fw+',' ,ltrim(@temp))>0
这个判断不成立吧


你要写什么函数啊,搞的这么复杂
[/Quote]
就是写个带参量@dy_fw varchar(30) 的判断函数,与表里面的如dy_dd字段的用逗号隔开的数字进行匹配,如成功则返回表dy_tdx字段....
黄_瓜 2012-03-29
  • 打赏
  • 举报
回复
可能if charindex(','+@dy_fw+',' ,ltrim(@temp))>0
这个判断不成立吧


你要写什么函数啊,搞的这么复杂

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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