Luk*_*vek 1 sql sql-server select
你好今天我练习了SQL语句.当我尝试从%like%中选择数据库时,它在我使用变量时以及当我不使用它时输出不同的值.
请参阅follorwing考虑名为POSTS的简单表,每个帖子都有CONTENT和HEADING
现在当我尝试从这个表中选择时
SELECT *
FROM Posts
WHERE Headline like '%'+'fun'+'%' OR Content like '%'+'fun'+'%'
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
但是,如果我尝试在搜索中选择使用变量:
DECLARE @test NVARCHAR = 'fun'
SELECT * FROM Posts
WHERE Headline like '%'+@test+'%' OR Content like '%'+@test+'%'
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
所以我想知道这个变量怎么会改变结果,理论上它必须具有相同的输出?
这是你的声明:
DECLARE @test NVARCHAR = 'fun'
Run Code Online (Sandbox Code Playgroud)
之后,@test
有了价值'f'
.为什么?它只有一个字符.
在SQL Server中使用字符串声明时始终加入长度:
DECLARE @test NVARCHAR(255) = 'fun'
Run Code Online (Sandbox Code Playgroud)