姓と名前の後に空白があります。2つのSQLクエリがあります。最初のクエリは、空白なしで検索しても結果を返します。(最初のクエリは不要な結果を返します)。
- この動作は、SQL Serverのすべてのバージョンで一貫していますか?
- それは既知の動作ですか?どこかに文書化され
msdn
ていSQL Server 2008 R2
ますか?
コード
DECLARE @NameTable TABLE (first_name varchar(40),last_name varchar(40))
INSERT INTO @NameTable VALUES ('STEVEN ','STANLEY ');
--QUERY 1
SELECT first_name AS [FirstName], last_name AS [LastName]
FROM @NameTable A
WHERE (first_name = 'STEVEN')
AND (last_name = 'STANLEY')
--QUERY 2
SELECT first_name AS [FirstName], last_name AS [LastName]
FROM @NameTable A
WHERE (( ISNULL(first_name,'')+' ' +ISNULL(last_name,'') ) = 'STEVEN STANLEY')
--QUERY 3 (With LTRIM and RTRIM)
SELECT first_name AS [FirstName], last_name AS [LastName]
FROM @NameTable A
WHERE (( ISNULL(LTRIM(RTRIM(first_name)),'')+' ' +ISNULL(LTRIM(RTRIM(last_name)),'') ) = 'STEVEN STANLEY')
参照: