다음 형식의 테이블에 필드가 있습니다. 1_2..1_10|1_6|1_8|
1_2..1_10
에 1_2
, 1_3
및 기타가 포함되어 있습니다.Navision 필터를 SQL로 변환
어떻게 데이터를 선택할 수 있습니까? number = 1_3
?
다음 형식의 테이블에 필드가 있습니다. 1_2..1_10|1_6|1_8|
1_2..1_10
에 1_2
, 1_3
및 기타가 포함되어 있습니다.Navision 필터를 SQL로 변환
어떻게 데이터를 선택할 수 있습니까? number = 1_3
?
첫 번째 제안 : db 구조를 수정하고 Navision 문자열을 더 잘 저장하는 방법을 알아 봅니다.
2 차 제안 : CLR은
나는 당신이 이러한 개념의 각각 상대적으로 편안 가정합니다. 당신이 그렇지 않다면 그들은 웹상에서 잘 문서화되어 있습니다.
내 접근 방식은 CLR 함수를 사용하는 것이므로 C#이 아주 쉽게 처리 할 수있는 SQL의 일부 고수준 작업이 될 것입니다. 가짜 도보는 이와 같이 갈 것입니다.
구현
CLR 기능 로직
SQL 로직
SELECT Field1,Field2...CLRFunctionName(FilterValue) AS FixedFilterValue FROM Sometable WHERE FixedFilterValue LIKE '%1_3%';
SQL 서버 내부에서 함수를 사용하는 방법을 고려했지만, 행 당 함수 호출 내에서 임시 테이블의 양이 커질수록 성능이 크게 향상 될 것으로 생각됩니다. C# 및 .NET은 SQL Server보다이 반복 유형 사고 프로세스를 더 빨리 처리해야합니다. 또한 CLR은 제대로 구현하기 어려울 수 있으며 일단 구현되면 유지 보수하기가 어려울 수 있다는 점에 유의하십시오. –
그리고 또 하나의 메모. 데이터베이스가 클 경우, 서둘러 어떤 식 으로든이 쿼리를 다시 가져 오는 것을 잊어 버리십시오. 그것은 아주 느리게 진행될 것입니다. 내가 말했듯이 최선의 방법은 탐색 필터가 SQL을 쉽게 씹을 수있는 방법을 찾을 수있는 방법을 찾는 것입니다. –
당신은 DB 구조를 변경할 수 없습니다? 이것은 특히 끔찍한 것입니다 ... –
불행히도 아니요 –
Run Away !!!!!!! –