Преобразование SQL в X ++ - PullRequest
0 голосов
/ 09 июля 2019

Я хотел бы преобразовать следующий SQL в X ++

case when CHARINDEX('-',REVERSE(NAME)) > 0 then right(NAME,CHARINDEX('-',REVERSE(NAME))-1) else Name end as Name

Ответы [ 2 ]

1 голос
/ 09 июля 2019
str result;

result = strScan(name, '-', strLen(name), -strLen(name)) > 0 ?
            strDel(name, 1, strScan(name, '-', strLen(name), -strLen(name))) :
            name;

// Just an observation, the following would actually give the same result

result = strDel(name, 1, strScan(name, '-', strLen(name), -strLen(name)));

Обратите внимание, что такие строковые функции нельзя использовать в операторах SELECT, предложениях WHERE и т. Д. Если это абсолютно необходимо, можно обойти использование вычисляемых столбцов в представлениях .

1 голос
/ 09 июля 2019

Ниже приведен эквивалент X ++ для функций SQL:

CHARINDEX     strFind
REVERSE       strReverse
RIGHT         subStr

Функции времени выполнения строки X ++

...