[SQL] LINQ의 String 비교를하는 문제
SQLLINQ의 String 비교를하는 문제
나는 문제가 쿼리 I 필요로 뭔가를 번역하는 LINQ를 얻는 데 문제가 있습니다. T-SQL에서, 우리는 CHAR (6) 열 세 개의 기둥에 <= 및> = 비교를. LINQ 날부터이 작업을 수행하도록 허용하지 않습니다
나는 다음과 같은 T-SQL 쿼리를 ..
SELECT *
FROM [ZIPMASTER] zm
WHERE zm.CORP = 12
AND '85546 ' BETWEEN zm.ZIPBEG AND zm.ZIPEND
BETWEEN에 대한 지원이 없기 때문에 위, freindly 매우 LINQ 없습니다. 따라서, 나는 다음에 단순화 :
SELECT *
FROM [ZIPMASTER] zm
WHERE zm.CORP = 12
AND zm.ZIPBEG <= '85546 '
AND zm.ZIPEND >= '85546 '
나는 다음의 LINQ 쿼리를 작성하는 데 사용되는이있는 :
var zipLinqQuery =
from z in db.ZIPMASTERs
where z.CORP == 12
&& z.ZIPBEG <= "85546 "
&& z.ZIPEND >= "85546 "
select z;
List<ZIPMASTER> zips = zipLinqQuery.ToList<ZIPMASTER>();
C # - LINQ는 너무 많은이 쿼리를 좋아하지 않습니다. 나는 그러나, 어떤 경우에는 우편 번호가 문자를 포함 할 수 있습니다,의 int로 변환 한 후 비교했습니다. 예를 들어, 다음과 같은 표현은 T-SQL에서 true로 평가합니다 :
WHERE '85546B' BETWEEN '85546A' AND '85546D'
이 T-SQL에서 작동하지만, 내 생각 엔 그것은 숫자 ASCII 값으로 변환하여 개별적으로 배열의 각 문자를 비교한다는 것입니다 이유를 정확하게 알 수 없습니다.
어쨌든, 당신이 모두 제공 할 수있는 모든 도움을 크게 감사합니다. 미리 감사드립니다.
CJAM
솔루션 (존 소총에 의해 게시) :
String.compareTo가 ()가 실제로 필요한 T-SQL을 생성에 않는 것 같습니다. 예를 들면 아래 :
var zipLinqQuery =
from z in db.ZIPMASTERs
where z.CORP == listItem.CORP
&& z.ZIPBEG.CompareTo(listItem.ZIPCODE) <= 0
&& z.ZIPEND.CompareTo(listItem.ZIPCODE) >= 0
select z;
다음 T-SQL을 생성합니다 :
DECLARE @p0 INT, @p1 CHAR(6), @p2 CHAR(6)
SET @p0 = 12
SET @p1 = '85546 '
SET @p2 = '85546 '
SELECT [t0].[CORP], [t0].[ZIPEND], [t0].[ZIPBEG], [t0].[CITY], [t0].[STATE], [t0].[CYCLE]
FROM [dbo].[ZIPMASTER] AS [t0]
WHERE ([t0].[CORP] = @p0) AND ([t0].[ZIPBEG] <= @p1) AND ([t0].[ZIPEND] >= @p2)
해결법
-
==============================
1.시험:
시험:
var zipLinqQuery = from z in db.ZIPMASTERs where z.CORP == 12 && z.ZIPBEG.CompareTo("85546 ") <= 0 && z.ZIPEND.CompareTo("85546 ") >= 0 select z;
나는 String.compareTo가이 SQL에 LINQ의 작동하는지 모르겠지만, 시도하는 최초의 일이다.
(일반적으로 당신이 비교의 오른쪽 유형을 지정하는 StringComparer를 사용해야합니다,하지만 난 compareTo와 더 나은 옵션이 경우에 생각한다.)
from https://stackoverflow.com/questions/578231/issues-doing-a-string-comparison-in-linq by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SqlBulkCopy의와 SQL 테이블에 DataTable에 열을 매핑 (0) | 2020.05.11 |
---|---|
[SQL] 사용 노조 또는 가입 - 빠른 [Closed]입니다 무엇 (0) | 2020.05.11 |
[SQL] 엔티티 프레임 워크 - 제 사용량 속성 (0) | 2020.05.11 |
[SQL] SQL 서수 위치 표기법을 사용의 장점? (0) | 2020.05.11 |
[SQL] C #을 사용하여 SQL 데이터베이스에 날짜 시간 값을 삽입 (0) | 2020.05.11 |