공통점에 나타나는 문자 수를 기준으로 두 개의 주소 열을 찾고 있습니다. 아래에는 데이터가 나타나는 방식과 의도 한 결과가 나와 있습니다. 어떤 해결책을 주시면 감사하겠습니다. 도움으로T-SQL : 일치하는 값을 일치하는 값을 비교하십시오.
0
A
답변
0
A A 테이블 반환-기능 및 크로스 적용
예
Declare @YourTable table (Address1 varchar(25),Address2 varchar(25))
Insert Into @YourTable values
('123 Foo St','12 Foo'),
('123 Foo St','Bar Street'),
('123 Foo St','321 Foo St'),
('123 Foo St','Bar Lane')
Select A.*
,B.*
From @YourTable A
Cross Apply (
Select Cnt = count(*)
From (Select Distinct RetSeq,RetVal From [dbo].[udf-Str-Parse-Char](replace(A.Address1,' ',''))) C1
Join (Select Distinct RetVal From [dbo].[udf-Str-Parse-Char](replace(A.Address2,' ',''))) C2
on C1.RetVal=C2.RetVal
) B
반환
Address1 Address2 Cnt
123 Foo St 12 Foo 5
123 Foo St Bar Street 2
123 Foo St 321 Foo St 8
123 Foo St Bar Lane 0
CREATE FUNCTION [dbo].[udf-Str-Parse-Char] (@String varchar(max))
Returns Table
As
Return (
with cte1(N) As (Select 1 From (Values(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) N(N)),
cte2(N) As (Select Top (IsNull(DataLength(@String),0)) Row_Number() over (Order By (Select NULL)) From cte1 a,cte1 b,cte1 c,cte1 d,cte1 e,cte1 f)
Select RetSeq=N
,RetVal=Substring(@String,N,1)
From cte2
)
--Max 1 Million Observations
--Select * from [dbo].[udf-Str-Parse-Char]('this is a string')
+0
나는 this.I와 함께 일할 수있어 고마워. 나는 투표했지만 새로운 참가자로서 공개적으로 등록하지 않았다. 다시 한번 감사드립니다. –
+0
@ M.Butter 행복한 도움이되었습니다. 건배 :) –
관련 문제
- 1. Yii2 검색에서 일치하는 배열 색인 값을 비교하십시오.
- 2. TSQL - 축소 일치하는 레코드
- 3. 일치하는 셀 값을 확인하십시오.
- 4. 일치하는 배열 값을
- 5. 두 개의 열과 별도의 작업 시트에서 일치하는 값을 비교하십시오.
- 6. 파일에서 일치하는 경우 배열 값을 해시 및 삭제 키로 비교하십시오.
- 7. 열이 일치하는 테이블 채우기 | TSQL
- 8. 이 dataframes을 비교하고 일치하는 값을
- 9. MongoDB - 키가 일치하는 값을 변경하십시오.
- 10. 일치하는 값을 자체 캡쳐 그룹에두기
- 11. Excel vba로 값을 비교하십시오.
- 12. 오름차순 값을 삽입하는 TSQL
- 13. 일치하는 항목이 일치하는 경우
- 14. Excel에서 열과 인쇄 값을 비교하십시오.
- 15. TSQL 날짜 형식과 일치하는 jQuery 플러그인
- 16. 테이블에서 일치하는 값을 검색하고 배열 키로 바꾸기
- 17. 일치하는 값을 가진 SQL을 선택하는 행
- 18. 정규식에서 일치하는 부분을 포함하는 값을 대체하려면 Regex?
- 19. php 쿼리에서 일치하는 데이터베이스의 모든 값을 얻습니다.
- 20. ArrayList.contains를 사용하여 일치하는 값을 (찾기)하고는
- 21. 배열에서 일치하는 값을 기반으로 변수를 생성하십시오 - PHP
- 22. 목록에서 사전에 일치하는 값을 찾으 시나요?
- 23. 두 목록에서 일치하는 값을 찾는 방법은 무엇입니까?
- 24. php 정규 표현식과 일치하는 모든 값을 수집합니다.
- 25. SQL - 두 개의 일치하는 값을 반환합니다.
- 26. Redis - 정규식과 일치하는 키의 값을 얻습니다.
- 27. 두 배열에서 일치하는 값을 찾을 수
- 28. for 루프에서 일치하는 값을 찾는 JavaScript
- 29. 일치하는 기준에 따라 Excel에서 셀 값을 대체하십시오.
- 30. 제거 일치하는 값을 표시 나머지 값
그냥 확인하는 관심이 경우, UDF가 : 123 푸 세인트/321 Foooo 세인트 만 8이 아닌 10, 마찬가지로 123 공간이 문자로 계산하지 않습니다이다 Foooo 세인트/321 푸 세인트 만 8 , 10 아닌가요? –
즉, 정확한 공백은 문자로 간주되지 않습니다. –
https://www.simple-talk.com/blogs/string-comparisons-in-sql-the-longest-common-substring/? 참고 : 이것은 비교적 비싼 계산 대상입니다. –