首页 > 解决方案 > 我在使用 sql 语言函数时遇到问题

问题描述

我已经使用 SQL 语言工作了1 个月。这就是为什么我可能不明白的原因。但是我在创建这些函数时总是出错。我在那里写了代码。错误信息如下:

当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。

CREATE FUNCTION deneme(
    @ID int
)
RETURNS nvarchar(max)
AS
BEGIN
    DECLARE @value nvarchar(max)
    SET @value = (
        SELECT * FROM information
        WHERE @ID = Person_id
    )
    RETURN @value
END

标签: sqlsql-server

解决方案


您不能将所有列值分配给这样的一个变量,并且由于您要传递一个ID人,并且您希望您的函数返回该人的信息

CREATE FUNCTION dbo.deneme
(
  @ID int
)
RETURNS NVARCHAR(300)
AS
BEGIN
  DECLARE @Value NVARCHAR(300) = N'';

  SELECT @Value = CONCAT(I.FirstName, N' ', I.LastName)
  FROM Information I
  WHERE I.PersonId = @ID;

  RETURN @Value;
END

推荐阅读