4

このようなお問い合わせを頂いております

SELECT firstName
FROM student
WHERE LEN(firstName) > 5

「firstName」列に非クラスター化インデックスがあります。

通常、WHERE、HAVING などの句でテーブルの列に SQL 関数を使用しないことをお勧めします。そうしないと、SQL Server はインデックスを使用できません。

firstName 列で LEN() を使用せずにこのクエリを作成する別の方法はありますか?

4

3 に答える 3

0

これが役立つかどうかはわかりません:

;WITH MyCTE AS
(
    SELECT FirstName,      
           LEN(FirstName) AS NameLength
    FROM student
)
SELECT FirstName
FROM   student 
WHERE  NameLength > 5
于 2013-08-12T09:55:49.597 に答える
0

CTE の使用は 1 つの選択肢かもしれません

;WITH CTE AS(
SELECT firstName, 
       LEN(firstname) AS NameLength
FROM student
)
SELECT firstname
FROM CTE 
WHERE NameLength > 5

ラージ

于 2013-08-12T09:57:09.543 に答える