在tsql中,如果單一條件要符合多個條件值時,都會以 in 的方式
select * from test where col1 in ( '1234','5678,'abcd')
如果這個多值的參數想要傳入做為stored proedure 的input parameter時,看來是不可行的
有二種方法:
1. 用charindex
select * from test where charindex ( col1 , '1234,5678,abcd') > 0
2.寫一個table function,
select * from test
where col1 in ( select valuString from dbo.zfnRtnStringTable ( '1234,5678,abcd' ) )
以下function來自一段不曉得在哪看過的script...,引用一下
CREATE FUNCTION dbo.zfnRtnStringTable ( @key varchar(8000))
RETURNS @rtnTable TABLE ( stringValue varchar(10))
AS
BEGIN
DECLARE @strValue varchar(10), @pos int
SET @key = @key+ ','
SET @pos= charindex(',', @key, 1)
IF replace(@key, ',', '') <> ''
BEGIN
WHILE @pos> 0
BEGIN
SET @strValue = left(@key, @pos- 1)
IF @strValue <> ''
BEGIN
insert into @rtnTable values( @strValue )
END
SET @key = right(@key, len(@key) - @pos)
SET @pos= charindex(',', @key, 1)
END
END
RETURN
END
訂閱:
張貼留言 (Atom)
離線安裝SSMS 22 launched extracted application exiting with result code 0x138b
SSMS 22 安裝器下載頁面 https://learn.microsoft.com/zh-tw/ssms/install/install https://aka.ms/ssms/22/release/vs_SSMS.exe 將安裝檔下載到本機,檔案好大2.5G https:...
-
freeFTPd是套免費的SFTP SERVER支援22 port SFTP及21port FTP,一般找到免費的都不支援SFTP只有技援FTPS。 之前一直有個困擾在幾台主機安裝後,有幾台重開機後,SFTP SERVER必須手動去啟動,一直以來老是搞不懂為什麼,今天看到一篇文...
-
上網找了免費的白箱檢測工具,找到了 puma scan 因為支援OWASP TOP 10的檢測,所以這是一個符合客戶需求又能與Visual studio結合的工具(白話說...交差了事矣....) 更重要的是這不用錢....檢測工具都貴森森的,尤其是源碼檢測工具。 ht...
-
在SQL SERVER 2008R2 10.50.2500 上建立一個LIKED SERVER連結INFORMIX,OPENQUERY時遇到了一個錯誤 testab中只有一個欄位coltest varchar(40),輸入一個UNICODE的字,查詢後出現錯誤 s...
沒有留言:
張貼留言