需要帮助转换为SQL

时间:2014-03-13 17:12:22

标签: sql

HI无法搞清楚这一点。有人可以帮我转换为SQL吗?我试图从各个领域中选择一个特定的句子。

numberVar BegPos := 0;
numberVar EndPos := 0;

BegPos := InStr ({HEADER_MSG.MEMO_PAD1} ,'STATUS:',1);
IF BegPos >= 1 THEN
EndPos := InStr (begpos,{HEADER_MSG.MEMO_PAD1} ,'.');

IF NOT ISNULL({HEADER_MSG.MEMO_PAD1}) THEN

(
BegPos := BegPos + 7;

IF (BegPos <= 0 OR EndPos <= 0) or BegPos = EndPos THEN
" "
ELSE
Mid ({HEADER_MSG.MEMO_PAD1},BegPos, Endpos - Begpos) 

)
ELSE
" "  

1 个答案:

答案 0 :(得分:0)

所以你有一个具有Status:samplestatus的字段。并且你希望它返回第一个之间的所有内容:和。即。

Samplestatus


Substring()和PatIndex()将非常有用。

substring(HEADER_MSG.MEMO_PAD1, PatIndex('Status%',HEADER_MSG.MEMO_PAD1)+7, PatIndex('%.%',HEADER_MSG.MEMO_PAD1)-8)

其中HEADER_MSG.MEMO_PAD1是您的字段。

Select substring(Data, PatIndex('Status%', Data)+7, PatIndex('%.%', Data)-8)
from(
select 'Status: testStatus2.' as Data
)x

返回

testStatus2