[SQL] VARCHAR 변수는 WHERE 절에서 작동하지 않습니다
SQLVARCHAR 변수는 WHERE 절에서 작동하지 않습니다
왜이 작업을 수행 ...
DECLARE @MyInt int = 12345;
SELECT * FROM MyTable WHERE MyId = @MyInt; --Returns 1 row
SELECT * FROM MyTable WHERE MyId = 12345; --Returns 1 row
그러나 이것은하지 않는 이유는 무엇입니까?
DECLARE @MyVarchar varchar = 'ABCDEF';
SELECT * FROM MyTable WHERE MyId = @MyVarchar; --Returns 0 rows
SELECT * FROM MyTable WHERE MyId = 'ABCDEF'; --Returns 1 row
SQL Server 버전은 10.50.1746입니다
해결법
-
==============================
1.당신이 선언 할 때 때문에, 기본 VARCHAR 길이는 1 그래서 @MyVarchar이 'A'를 것으로 끝입니다.
당신이 선언 할 때 때문에, 기본 VARCHAR 길이는 1 그래서 @MyVarchar이 'A'를 것으로 끝입니다.
이것은 기본 길이는 30입니다 캐스트 (VARCHAR와 같은 무언가)에 다릅니다.
옳은 일이다
DECLARE @MyVarchar varchar(10) = 'ABCDEF';
여기서 10은 테이블 컬럼의 길이이다.
from https://stackoverflow.com/questions/8580076/varchar-variable-is-not-working-in-where-clause by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 함수에서 반환 녹음 열이 연결된했다 (0) | 2020.04.28 |
---|---|
[SQL] 문자열이 SQL에 악센트 문자가 포함 된 경우 확인? (0) | 2020.04.28 |
[SQL] 함수의 동적 SQL 전화 (0) | 2020.04.28 |
[SQL] SQL의 이동과 동적 쿼리를 실행 (0) | 2020.04.27 |
[SQL] 간단한 PHP SQL 로그인 문제 해결 (0) | 2020.04.27 |