我想查询以特定文本片段开头的条目的表。
我的印象是 LIKE 运算符是执行此操作的一种方法,因此如果我想查找具有以“a”开头的 Column2 的所有行,那么我将使用如下查询来执行此操作
SELECT Column1, Column2, Column3
FROM Table1
WHERE Column2 LIKE 'a%';
Run Code Online (Sandbox Code Playgroud)
我发现使用这样的查询会返回意外的结果。
下面是一个例子:
CREATE DATABASE TestDB;
GO
USE TestDB;
GO
CREATE TABLE TestTable
(
Id INT NOT NULL,
Romanian NVARCHAR(MAX) COLLATE SQL_Romanian_CP1250_CI_AS NOT NULL,
English NVARCHAR(MAX) NOT NULL
);
GO
SET NOCOUNT ON;
INSERT TestTable SELECT 1, N'da', 'yes';
INSERT TestTable SELECT 2, N'ani', 'years';
INSERT TestTable SELECT 3, N'a avea', 'to have';
INSERT TestTable SELECT 4, N'a fi', 'to be';
INSERT TestTable SELECT 5, N'?ase', 'six';
INSERT TestTable SELECT 6, N'?apte', 'seven';
INSERT TestTable SELECT 7, N'opt', 'eight';
INSERT TestTable SELECT 8, N'zece', 'ten';
INSERT TestTable SELECT 9, N'nu', 'no';
GO
SELECT *
FROM TestTable
WHERE Romanian LIKE 'a%';
USE master;
GO
DROP DATABASE TestDb;
GO
Run Code Online (Sandbox Code Playgroud)
我期待这会返回以下内容
+----+-------------+----------+
| Id | Romanian | English |
+----+-------------+----------+
| 2 | ani | years |
+----+-------------+----------+
| 3 | a avea | to have |
+----+-------------+----------+
| 4 | a fi | to be |
+----+-------------+----------+
Run Code Online (Sandbox Code Playgroud)
但它返回了这个
+----+-------------+----------+
| Id | Romanian | English |
+----+-------------+----------+
| 2 | ani | years |
+----+-------------+----------+
| 3 | a avea | to have |
+----+-------------+----------+
| 4 | a fi | to be |
+----+-------------+----------+
| 5 | ?ase | six |
+----+-------------+----------+
| 6 | ?apte | seven |
+----+-------------+----------+
Run Code Online (Sandbox Code Playgroud)
我的版本号是 13.0.1601.5
归档时间: |
|
查看次数: |
345 次 |
最近记录: |