2013-08-01 2 views
0

변수 연결에 null 값이 있으면 모든 변수가 null 값을 반환한다는 것을 PB에서 알았습니다. 연결 중에 null 값을 처리하는 방법이 있는지 알아 내려고하고 있습니다.문자열 연결에서 null 값을 처리하는 방법은 무엇입니까?

아래 예를 보면 ls_element3은 null 값을 반환하고 모든 변수가 null 값을 반환한다는 것을 알 수 있습니다. ls_element1 및 ls_element2에서 값을 반환하는 것이 좋습니다. 누구든지 문자열 연결 중에 null 값을 처리하는 방법에 대한 아이디어가 있습니까?

String ls_message, 
ls_element1 = a, 
ls_element2 = b, 
ls_element3 = null 

ls_message = ls_element1 + ls_element2 + ls_element3 
+0

모든 변수가 null 값을 반환한다는 것을 의미하는 것은 분명하지 않습니다. 내가 아는 한 ls_message는 null이 될 것이다. null 값을 확인하고 빈 문자열을 반환 할 수있는 작은 함수 (TSQL IsNull과 유사)를 작성할 수 있다고 생각합니다. 그런 식으로 결과가 null이되지 않습니다. – DARKinVADER

답변

2

몇 가지 더 많은 정보가 있지만 두 가지 기본적인 접근 방식을 사용할 수 있습니다.

// insert between assignment and concatenation 
IF IsNull (ls_element1) THEN ls_element1 = "" 
IF IsNull (ls_element2) THEN ls_element2 = "" 
IF IsNull (ls_element3) THEN ls_element3 = "" 

또는

//create a function that mimics the if() DataWindow function in PowerScript 
function string f_if (boolean ab_Condition, string as_TrueResult, string as_FalseResult) 
IF ab_Condition THEN 
    RETURN as_TrueResult 
ELSE 
    RETURN as_FalseResult 
END IF 

ls_message = f_if (IsNull (ls_element1), "", ls_element1) + & 
    f_if (IsNull (ls_element2), "", ls_element2) + & 
    f_if (IsNull (ls_element3), "", ls_element3) 

행운을 빕니다로 연결을 변경,

테리

0

당신은 빈 문자열에 널 (null) 문자열 값을 강제 할 수 ~를 통해 그는 string() 기능과 [general] 형식입니다. 그것은 빈 문자열이 null 값을 대체합니다 ...

string ls_a, ls_b, ls_c, ls_d 

ls_a = "foo" 
setnull(ls_b) 
ls_c = "bar" 

ls_d = string(ls_a, "[general]") + string(ls_b, "[general]") + string(ls_c, "[general]") 
//ls_d is "foobar" 

string(variable, '[general]')isnull(variable, '')

에 해당하지만 그래도 꽤 코드가 아닙니다 정확히

0

nullisblank(s) 함수를 작성할 수 있습니다. 전달 된 값이 NULL이면 빈 문자열을 반환합니다. 그렇지 않으면 값을 리턴합니다. 이는 특히 데이터 윈도우에서 유용합니다.

0
if not isnull(ls_element1) then ls_message += ls_element1; 
if not isnull(ls_element2) then ls_message += ls_element2; 
if not isnull(ls_element3) then ls_message += ls_element3 

이 같은 경우 : 당신이 할 때

string a = '1'; 
string b = ''; 
string c = null; 

문자열 마녀입니다 = A + 결과가 될 것 b를 1 그러나 당신이 만드는 경우 문자열 = A + B + C 또는 a + c는 null 문자열이 다른 값을 줄이면 null이됩니다.

관련 문제