2010-02-19 107 views
3

我有以下查詢:SQL服務器 - CHARINDEX總是返回0

SELECT 
    CAST([Action] AS NVARCHAR(4000)) AS CastAction, 
    CHARINDEX(CAST([Action] AS NVARCHAR(4000)), N'StatusChange') AS FoundIndex 
FROM AuditTrail 
WHERE action LIKE '%StatusChange%' 

的行動是一個NTEXT場 - 該查詢返回多行,在動作文本匹配StatusChange,但返回的CHARINDEX始終爲零。 ..任何想法 - 我需要能夠拆分這個字符串來整理一些數據?

+0

啊,只注意到刻意弄錯......我有我的論點以錯誤的方式在CHARINDEX函數... – Paddy 2010-02-19 10:01:33

+2

ntext已被棄用,您需要開始將這些字段轉換爲nvarchar(最大) – HLGEM 2010-02-19 21:02:46

回答

10

你得到的參數爲CHARINDEX錯誤的方法。

+0

:-D哦,sheesh,我真的需要這個.......有些日子,您只需要另一組眼睛,即使間接和相隔幾年 – 2017-11-15 23:37:09

6

你交換parameters

Searches expression2 for expression1 and returns its starting position if found. 

嘗試:

CHARINDEX(N'StatusChange', CAST([Action] AS NVARCHAR(4000)))