求一个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) + ',% '