這是要求:
查找 FirstName 長度小于 5 且 FirstName 和 LastName 的前 3 個字符相同的所有教師
我試過這個查詢(標量函式):
CREATE OR ALTER FUNCTION dbo.fn_TeacherFirstName (@TeacherID int)
RETURNS NVARCHAR(20)
AS
BEGIN
DECLARE @Result NVARCHAR(20)
SELECT @Result = LEN(FirstName) < 5 AND LEFT(FirstName,3) = LEFT(LastName,3)
FROM dbo.Teacher
WHERE @TeacherID = ID
RETURN @Result
END
呼叫函式:
--CALL FUNCTION
select *, dbo.fn_TeacherFirstName (ID) AS Result
from dbo.Teacher t
但是,當我執行第一個查詢時,它顯示錯誤:
'<' 附近的語法不正確。
誰能幫我這個?
uj5u.com熱心網友回復:
只需使用普通查詢,而不是函式。booleanSQL Server 中也沒有型別,請bit改用。
SELECT *,
Result = CAST(CASE WHEN LEN(t.FirstName) < 5 AND LEFT(t.FirstName, 3) = LEFT(t.LastName, 3) THEN 1 END AS bit)
FROM dbo.Teacher t
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/485775.html
