2011-12-19 1 views
1

SELECT INTO 문을 사용하여 변수 목록을 설정하려고 시도하지만 행을 찾을 때 null 데이터를 반환하는 쿼리와 관련된 일부 문제가 발생합니다. 정말 이상한 점은 특정 열을 선택하면 작동하지만 다른 열과는 작동하지 않는다는 것입니다. 한 번에 하나씩 이슈를 분리하기 위해 쿼리를 단순화했습니다. 특히mysql에서 질의하여 저장 프로 시저가 잘못 반환 됨

SELECT MarketName INTO @Product_1 
FROM STG_XREF_ELS_PRODUCTS 
WHERE MarketName = @ThisMarketName 
LIMIT 1; 

... 내가 똑같은 쿼리를 입력하지만 다른 필드를 선택하는 경우 그러나, 그것은 잘 작동이 문이 작동하지 않습니다

SELECT Product_1 INTO @Product_1 
FROM STG_XREF_ELS_PRODUCTS 
WHERE MarketName = @ThisMarketName 
LIMIT 1; 

: 저는 여기에 실행하려고하고있는 무슨이다 , 이것이 Product_1이 실제로 null 인 경우가 아니라는 것을 확인하기 위해 테스트했습니다. Product_1이 null 인 내 외부 참조 테이블에 인스턴스가 없습니다. 또한 테이블 1에서 Product_1을 선택하고 where 절이 없으면 null 결과를 얻습니다.

set @Product1 = (select Product_1 
       FROM STG_XREF_ELS_PRODUCTS 
       WHERE MarketName = @ThisMarketName); 

감사를 사전에 도움을 :

은 또한 사용하여 시도했다!

P.

+3

fyi : MySQL의 @ 표기법은 세션 변수를 나타냅니다. t-sql에서 @는 지역 변수를 나타냅니다. MySQL 로컬 변수에는 접두어가 필요하지 않습니다. 값이 예상 한 값이 아니기 때문에 MySQL에서 세션 변수를 사용하는 것에주의하십시오 (MySQL을 사용하는 SQL 서버 사용자에게 많은 것을 보았습니다. 그렇지 않은 경우 계속하십시오) –

+0

백틱으로 시도 했습니까? – eddy147

답변

0

시도 너무 변수의 이름을 변경 : STG_XREF_ELS_PRODUCTS FROM

SELECT Product_1 INTO @Product_variable WHERE MarketName = @ThisMarketName LIMIT 1;

관련 문제