'+'로 문자열을 분할하고 모든 문자열이 테이블의 한 행에 있는지 검색

Mounika Vadeghar

두 개의 열 이있는 테이블 규칙 이 있습니다.

  1. 구하다
  2. RuleValue

DECLARE @RuleType VARCHAR(MAX)= 'DDDD+FFFF' ;

나는 분할 위의 변수를 검색 할 'DDDD+FFFF'rulevalue열입니다.

아래 이미지는 규칙 테이블입니다.

여기에 이미지 설명 입력

rulevalue을 분할하고 검색 한 후 출력은 다음과 같아야합니다.

여기에 이미지 설명 입력

안드레아

순서가 중요하지 않은 경우 변수에서 조건을 생성 한 다음 like에서 필터 와 함께 사용할 where있습니다.

declare @Rules  table (RID int, RuleValue varchar(50))

insert into @Rules
values 
 (1,'DDDD+FFFF')
,(2,'DDDD+EEEE+FFFF')
,(3,'BBBB+CCCC')
,(4,'BBBB+DDDD')
,(5,'CCCC+EEEE')
,(6,'BBBB+DDDD')

DECLARE @RuleType VARCHAR(MAX)= 'DDDD+FFFF' ;

select *
from @Rules
where RuleValue like '%' + replace(@RuleType, '+','%') + '%'

결과 :

여기에 이미지 설명 입력


OP의 코멘트 후 편집

순서가 중요하다면 해결책이 조금 더 까다 롭습니다.

declare @Rules table (RID int, RuleValue varchar(50))

insert into @Rules
values 
 (1,'DDDD+FFFF')
,(2,'DDDD+EEEE+FFFF')
,(3,'BBBB+CCCC')
,(4,'BBBB+DDDD')
,(5,'CCCC+EEEE')
,(6,'BBBB+DDDD')

DECLARE @RuleType VARCHAR(MAX)=  'DDDD+FFFF+EEEE' ;

--define a table variable to hold every component of the rule type
declare @splittedRules table (SplittedRule nvarchar(max))

--fill the table variable with each component of the rule type
--since you use SQL Server 2012 you must use xml syntax to split the string
insert into @splittedRules
SELECT Split.a.value('.', 'NVARCHAR(MAX)') as SplittedRule
FROM
(
    SELECT CAST('<X>'+REPLACE(@RuleType, '+', '</X><X>')+'</X>' AS XML) AS String
) AS A
CROSS APPLY String.nodes('/X') AS Split(a)

--now you can see if each rule matches a single component of the rule type
;with compare as 
(
    select 
        r.RID
        ,r.RuleValue
        ,spl.SplittedRule 
        , case when CHARINDEX(spl.SplittedRule, r.RuleValue) > 0 then 1 else 0 end as ok 
    from 
        @Rules as r 
            cross apply 
        @splittedRules spl
)
--finally you can perform a group by checking 
--which rule matches all the components of the rule type
select
    RID, RuleValue   
from 
    compare
group by 
    RID, RuleValue
having 
    sum (ok)=(select count(*) from @splittedRules)
order by RID

결과 :

여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

CSV 파일에서 문자열을 검색하고이를 포함하는 모든 행을 표로 출력-PHP

분류에서Dev

R에 열의 문자열을 여러 열로 분할하고 모든 하위 문자열에 대해 행을 추가하는 방법이 있습니까?

분류에서Dev

테이블의 모든 td에서 정확한 "Retired"문자열을 검색하십시오. true이면 해당 테이블의 전체 행을 숨 깁니다.

분류에서Dev

열을 모르고 테이블에서 문자열 검색

분류에서Dev

열에서 문자열을 검색하고 인접한 셀에 특정 문자열이 있는지에 따라 전체 행을 복사하는 VBA

분류에서Dev

SQL 테이블의 모든 열에 대한 모든 제약 이름을 검색하는 방법

분류에서Dev

모든 행과 열에 고유 한 문자가있는 2D 문자 테이블 만들기

분류에서Dev

테이블의 모든 열에서 검색하는 방법

분류에서Dev

한 파일의 행을 읽고 다른 txt 파일에 나열된 4 자 문자열로 시작하는 모든 문자열을 찾습니다.

분류에서Dev

선행 문자열 (책 색인의 경우)에서 조건부 하나 이상 (쉼표로 구분)을 제외한 모든 숫자를 늘립니다.

분류에서Dev

문자열이 일치하는 데이터베이스의 모든 테이블을 검색하고 테이블 구조를 가져옵니다.

분류에서Dev

문자열로 pdf를 이동하고 모든 파일 검색에서 확인하거나 찾을 수 없음

분류에서Dev

쿼리 문자열의 한 필드가 비어 있고 문자열 형식 인 경우 테이블에서 모든 값을 반환합니다.

분류에서Dev

한 열의 값과 일치하고 다른 열의 쉼표로 구분 된 문자열에 하위 문자열이있는 테이블에서 행을 가져옵니다.

분류에서Dev

저장 프로 시저를 사용하지 않고 모든 테이블에서 문자열을 찾는 방법

분류에서Dev

모든 분기에서 문자열을 검색하지만 커밋을 특정 작성자로 제한 하시겠습니까?

분류에서Dev

열에 대한 Pandas Multi Index : 열 이름에있는 문자열의 일부로 모든 열을 선택하는 방법

분류에서Dev

MySQL은 다른 열의 동일한 테이블에서 다중 값 문자열을 새 테이블로 분할

분류에서Dev

테이블에서 모든 행을 검색하는 Eloquent 관계

분류에서Dev

PHP는 소수점으로 4 개 이상의 숫자에 대한 문자열을 검색하고 통화 형식으로 지정합니다.

분류에서Dev

단어에 포함 된 문자열의 모든 개별 문자를 검색하는 프로그램을 작성하려고합니다.

분류에서Dev

구분 기호로 문자열을 분할하고 한 구분자가 다른 구분 기호 다음에 오는 경우 공백 검색

분류에서Dev

특정 문자열에 대한 행을 검색하기 위해 if 문으로 목록을 열거하는 For 루프

분류에서Dev

폴더 및 모든 하위 폴더의 모든 파일에서 하위 문자열을 검색하고 다른 문자열로 바꿉니다.

분류에서Dev

특정 문자열로 시작하는 모든 테이블에서 UNION ALL

분류에서Dev

구분 된 분할 문자열에서 모든 하위 문자열 일치를 제거하는 효율적이고 안전한 쉘 스크립트?

분류에서Dev

Java에서 HTML 테이블을 포함하는 문자열을 제외한 모든 문자열 데이터 추출

분류에서Dev

APT-GET : 이름에 특정 문자열이있는 모든 패키지의 설명을 검색하는 방법은 무엇입니까?

분류에서Dev

문자열에서 문자의 모든 위치를 검색하고 쉼표로 구분 된 문자열로 반환

Related 관련 기사

  1. 1

    CSV 파일에서 문자열을 검색하고이를 포함하는 모든 행을 표로 출력-PHP

  2. 2

    R에 열의 문자열을 여러 열로 분할하고 모든 하위 문자열에 대해 행을 추가하는 방법이 있습니까?

  3. 3

    테이블의 모든 td에서 정확한 "Retired"문자열을 검색하십시오. true이면 해당 테이블의 전체 행을 숨 깁니다.

  4. 4

    열을 모르고 테이블에서 문자열 검색

  5. 5

    열에서 문자열을 검색하고 인접한 셀에 특정 문자열이 있는지에 따라 전체 행을 복사하는 VBA

  6. 6

    SQL 테이블의 모든 열에 대한 모든 제약 이름을 검색하는 방법

  7. 7

    모든 행과 열에 고유 한 문자가있는 2D 문자 테이블 만들기

  8. 8

    테이블의 모든 열에서 검색하는 방법

  9. 9

    한 파일의 행을 읽고 다른 txt 파일에 나열된 4 자 문자열로 시작하는 모든 문자열을 찾습니다.

  10. 10

    선행 문자열 (책 색인의 경우)에서 조건부 하나 이상 (쉼표로 구분)을 제외한 모든 숫자를 늘립니다.

  11. 11

    문자열이 일치하는 데이터베이스의 모든 테이블을 검색하고 테이블 구조를 가져옵니다.

  12. 12

    문자열로 pdf를 이동하고 모든 파일 검색에서 확인하거나 찾을 수 없음

  13. 13

    쿼리 문자열의 한 필드가 비어 있고 문자열 형식 인 경우 테이블에서 모든 값을 반환합니다.

  14. 14

    한 열의 값과 일치하고 다른 열의 쉼표로 구분 된 문자열에 하위 문자열이있는 테이블에서 행을 가져옵니다.

  15. 15

    저장 프로 시저를 사용하지 않고 모든 테이블에서 문자열을 찾는 방법

  16. 16

    모든 분기에서 문자열을 검색하지만 커밋을 특정 작성자로 제한 하시겠습니까?

  17. 17

    열에 대한 Pandas Multi Index : 열 이름에있는 문자열의 일부로 모든 열을 선택하는 방법

  18. 18

    MySQL은 다른 열의 동일한 테이블에서 다중 값 문자열을 새 테이블로 분할

  19. 19

    테이블에서 모든 행을 검색하는 Eloquent 관계

  20. 20

    PHP는 소수점으로 4 개 이상의 숫자에 대한 문자열을 검색하고 통화 형식으로 지정합니다.

  21. 21

    단어에 포함 된 문자열의 모든 개별 문자를 검색하는 프로그램을 작성하려고합니다.

  22. 22

    구분 기호로 문자열을 분할하고 한 구분자가 다른 구분 기호 다음에 오는 경우 공백 검색

  23. 23

    특정 문자열에 대한 행을 검색하기 위해 if 문으로 목록을 열거하는 For 루프

  24. 24

    폴더 및 모든 하위 폴더의 모든 파일에서 하위 문자열을 검색하고 다른 문자열로 바꿉니다.

  25. 25

    특정 문자열로 시작하는 모든 테이블에서 UNION ALL

  26. 26

    구분 된 분할 문자열에서 모든 하위 문자열 일치를 제거하는 효율적이고 안전한 쉘 스크립트?

  27. 27

    Java에서 HTML 테이블을 포함하는 문자열을 제외한 모든 문자열 데이터 추출

  28. 28

    APT-GET : 이름에 특정 문자열이있는 모든 패키지의 설명을 검색하는 방법은 무엇입니까?

  29. 29

    문자열에서 문자의 모든 위치를 검색하고 쉼표로 구분 된 문자열로 반환

뜨겁다태그

보관