0
ReturnValueID | ReturnValue TriggerValue
------------------------------------------
1 | returnValue1 | testvalue
2 | returnValue2 | testing...
3 | returnValue3 | value3
,並給予字符串表:HERE IS THE TEXT testing... AND MORE TEXT testvalue MORE TEXT
我寫了一個CTE使用SQL Server 2008中使用我寫以指示匹配的文本是FindInString()函數找到。 0 =未發現:
1 | returnValue1 | 43
2 | returnValue2 | 18
3 | returnValue3 | 0
我現在需要做的,就是通過這個結果在一個循環,我將履行根據各行的一些額外的邏輯設定迭代。
我已經看到了一些循環的例子,但我寧願不使用遊標。
解決此問題的最佳方法是什麼?
謝謝。
- UPDATE -
一旦匹配,所述匹配行的ID被添加到表中,如果它不存在,則返回值被附加到一個VARCHAR值,如果它不已經在動態字符串存在:
IF NOT EXISTS -- check if this value is already recorded
(
SELECT *
FROM RecordedReturnValue
WHERE ReturnValueID = @ReturnValueID
)
BEGIN
-- add the visitor/external tag ID to historical table
INSERT INTO RecordedReturnValue (...)
VALUES (...)
-- function checks if string is already present
SET @DynamicString = dbo.AppendDynamicOutput(@ReturnValue, @DynamicString)
END
這必須從CTE每一個匹配TriggerValue進行。
你可以提供一些關於你的循環會做什麼的信息嗎? 'CURSORS'和'WHILE'循環幾乎適用於迭代邏輯,但是10次中有9次可以找到基於集合的方法,這種方法效率更高。 SQL喜歡處理大量數據,而不是單個記錄。 – JNK 2012-02-10 13:51:19
@JNK - 基於響應集中的3條記錄,基於集合的方法對於我想要做的是什麼樣的? – ElHaix 2012-02-11 04:51:10