0
SQL 입문 및 모든 도움을 환영 할 것입니다.사례 쿼리가 작동하지 않습니다
누구나 다음 쿼리를 만드는 가장 좋은 방법을 조언 할 수 있습니까? _hs_eb_det1
의 문자 길이가 100자를 초과하는 경우
_hs_eb_code1 = 'bf', then set format = _hs_eb_det1
_hs_eb_code# = 'bf', then set format = _hs_eb_det#
Repeat until _hs_eb_code# (1-9),
그러나, 다음 '*'
와 접두사. 또한 _hs_eb_code1 = 'bf'는 하나이지만 _hs_eb_det1은 많은 결과를 제공합니다.
지금까지 사례 쿼리를 사용하여 첫 번째 부분을 확인한 다음 다른 쿼리를 작성할 수 있습니다. 졌다.
쿼리 :
SELECT CASE
WHEN LEN(FORMAT) < 100 THEN LEFT(FORMAT,100)
ELSE '*'+FORMAT
END AS FORMAT
FROM (SELECT CASE
WHEN EXISTS (SELECT _HS_EB_CODE1 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE1 = 'BF') THEN _HS_EB_DET1
WHEN EXISTS (SELECT _HS_EB_CODE2 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE2 = 'BF') THEN _HS_EB_DET2
WHEN EXISTS (SELECT _HS_EB_CODE3 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE3 = 'BF') THEN _HS_EB_DET3
WHEN EXISTS (SELECT _HS_EB_CODE4 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE4 = 'BF') THEN _HS_EB_DET4
WHEN EXISTS (SELECT _HS_EB_CODE5 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE5 = 'BF') THEN _HS_EB_DET5
WHEN EXISTS (SELECT _HS_EB_CODE6 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE6 = 'BF') THEN _HS_EB_DET6
WHEN EXISTS (SELECT _HS_EB_CODE7 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE7 = 'BF') THEN _HS_EB_DET7
WHEN EXISTS (SELECT _HS_EB_CODE8 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE8 = 'BF') THEN _HS_EB_DET8
WHEN EXISTS (SELECT _HS_EB_CODE9 FROM DBO.SRC_HBL_CLNT_CAT WHERE _HS_EB_CODE9 = 'BF') THEN _HS_EB_DET9
END) AS FORMAT
FROM DBO.SRC_TBM_BILLGRP
하지만 쿼리가 많은 한을 가지고 있다는 점에서 문제가있다, 따라서 작동되지 않습니다. 존재하는 경우 THEN
_HS_EB_DET1 이미 아래의 경우 비트를 가지고, 당신의 도움을 주셔서 감사합니다 은 (_HS_EB_CODE1 = 'BF가'WHERE DBO.SRC_HBL_CLNT_CAT FROM _HS_EB_CODE1를 선택). 문제는 다음 비트입니다 - _hs_eb_det #가 100 자 길이를 초과하면 '*'가 앞에 붙습니다. 쿼리 – Nobody
에게 질의의 두 번째 부분을 생성하는 방법을 잘은 문제 : SELECT CASE \t \t THEN (DBO.SRC_TBM_BILLGRP FROM _HS_EB_DET1을 선택 _HS_EB_DET1 그렇지 WHERE (_HS_EB_CODE1 = 'BF'는 WHERE DBO.SRC_HBL_CLNT_CAT FROM _HS_EB_CODE1 선택) 존재할 때 NULL 및 _HS_EB_DET1 <> '') \t 끝 FROM DBO.SRC_TBM_BILLGRP. 존재가 1에서 1까지만 작동하기 때문에, many to many를 지정해야합니다. – Nobody
@PeleO 죄송합니다. 그 코드의 질문을 이해할 수 없습니다. –