读书人

SQL函数的写法(MSSQL区人太少了,只好发

发布时间: 2012-03-19 22:03:05 作者: rapoo

求一个SQL函数的写法(MSSQL区人太少了,只好发到这里),非常紧急
求一个SQL函数的实现,必须是函数,因为要在许多存储过程中用到,如下
有这样一锻SQL语句
Declare @cmd nvarchar(500)

set @cmd = 'Select 1 Where ' + Cast(@AuthorID AS nvarchar) + ' IN( ' + @AuthorIDs + ') '

exec(@cmd)

请问,如何写函数才能将@cmd执行后的1作为函数的返回值输出呢,由于必须通过拼字符串实现,所以一筹莫展,本人对SQL中的函数并不是太了解,请各位大虾一定帮下忙

[解决办法]
改用CharIndex做判,不使用In做判。


declare @bResult bit
Set @bResult = 0
Select @bResult = 1 Where CharIndex( ', ' + Cast(1 As Varchar) + ', ' , ', ' + '1,2,3 ' + ', ') > 0
[解决办法]
你的句改,

select * from table where CharIndex( ', ' + Cast(AuthorIDs As Varchar) + ', ' , ', ' + @AuthorID + ', ') > 0
[解决办法]

在前後加上 ", "是了防止11包含1的候查出。

或者用Like也可以

select * from table where ', ' + @AuthorID + ', ' Like '%, ' + Cast(AuthorIDs As Varchar) + ',% '

读书人网 >asp.net

热点推荐