2010-02-05 5 views
5

전에이 같은 WHERE 절을 가지고 일부 SQL 코드를 찾고 있어요 C + +에서 유래하여 실수로 두 번째 등호를 잊어서 평등을 비교하는 대신 실수로 값을 할당 할 수 있습니다.값은 변수

전 본 적이 없어요.

귀하의 의견은 무엇입니까?

+3

커뮤니티 위키이어야합니다. – SilentGhost

+0

C++, C#, java, javascript 등의 변수를 비교할 때 이해할 수 있지만 where 절에서 변수에 값을 할당 할 수 없으므로 실제로는 중요하지 않다고 생각합니다. – Zoidberg

+2

@Zoidberg : "if"문 등이 부울 조건 유형을 가져야하는 C#이나 Java에서는 거의 문제가되지 않습니다. 따라서 어쨌든 오타가 여전히 합법적 인 경우는 거의 없습니다. –

답변

8

Er, C++은 SQL이 아닙니다. SQL에는 ==이없고 WHERE 절에는 지정이 없습니다.

"모범 사례"로 분류 될지는 모르겠지만 알려진 값을 오른쪽에 배치하는 규칙이 있습니다. 그래서, 당신의 예에서와 같이 문자와 그 것이다

WHERE CCY = 'USD' 
2

'='는이 문맥에서 대입 연산자가 아니기 때문에 C++ 추론이 적용되지 않는 SQL에서는 본 적이 없습니다. 또한 많은 C++ 프로그래머 (나를 포함해서)가이 스타일을 좋아하지 않습니다.

4

C++의 모범 사례는 SQL에서 모범 사례가 아닙니다. 쿼리 최적화 프로그램은 상관하지 않으므로 단지 환경 ​​설정의 문제 일뿐입니다.하지만 내 기본 설정이나 자연스럽게 작성하지 않을 것이라고 말해야합니다.

0

당신은 그것을 보면 :

'USD' = CCY 

은 본질적으로 동일합니다 : 그것은 가장 좋은 방법은 C++에서 을 형태소 분석, 이렇게이다

:

CCY = 'USD' 

에 관해서 사람들은 실수로 대신에 값을 할당 할 수 있습니다. 두 번째 수신은 등호입니다.

글쎄, 난 이런 일이 본 적이 없다, 이것은 중요 있다면, 우리는 확실히이 곳을 본 것 모두에 의해하지 않을 경우이 대부분으로 실행되었을 것입니다.

+0

?????????????????? – Sarfraz

+0

+1 왜 이런 생각이 들었는지 전혀 모르겠다. 나머지는 우리와 같다. – Andrew

+0

@Andrew : 대단히 고마워.하지만 사람들이 스스로 표를 얻으려고 애쓰는 방법을 모르겠다. 정말 나쁘다. 연습. – Sarfraz

0

나는 개인적으로 그런 식으로 작업을 수행하지만, 더/읽기 쉽게 내에서 수행하는 것입니다 나에게이 같이 왼쪽에 열 이름을 붙이지 않을 겁니다 SQL 쿼리.

나는 아주 드물게는 반대 방향으로 수행하고, 주어진 이유는 SQL 정말 적용 생각하지 않는다 볼 수없는 것 (지적되었다, 그것은이다 "="SQL에서,하지 "==")

0

그는 이것이 최선의 방법이라고 말하면 SQL 대신 C++ 소스가 아니라는 것을 증명해 줄 것을 요청합니다. 99.7 %의 SQL 코드 (개발자 코드, 다른 조직의 코드, Microsoft 도움말 파일, SQL 블로그 등)는 개발자가하는 것과는 정반대의 역할을합니다. 코드를 유지 관리하는 개발자는 좋지 않습니다.SQL에서 우리는

WHERE 'USD' = CCY 

따라서 professsional는 또한 메인테이너 분명 보장하기 위해 그 방식으로 코드를 작성할 것없는 형태

WHERE CCY = 'USD' 

를 볼 것으로 예상.