1

これは、Microsoft SQL Server では非常に奇妙です。

SELECT * FROM deliveries WHERE code LIKE '01999195000%'
-- 9 rows returned. Works.

DECLARE @a VARCHAR(10)
SET @a='01999195000%'
SELECT * FROM deliveries WHERE code LIKE @a
-- 0 rows returned? Why not?

SET @a = '01999195000'
SELECT * FROM deliveries WHERE code LIKE @a + '%'
-- 9 rows returned. Works.

% 文字を含む @a の検索と、% 文字を含まないが '%' が追加された @a の検索の違いは何ですか?

SQL Guru のいずれかがあなたの考えを共有できれば、それは素晴らしいことです。

4

3 に答える 3

27

これは、@a を VARCHAR(10) として定義したためですが、12 文字を入れようとしたためです...つまり、末尾から「%」が失われます。

于 2009-08-07T14:37:07.033 に答える
3

DECLARE @a VARCHAR(10) が答えです。@a に % が含まれることはありません。

于 2009-08-07T14:38:32.257 に答える
-2

LIKE はワイルドカード文字で、「ここで好きなもの」を意味します。

于 2009-08-07T14:37:30.607 に答える