搜索按钮,数据类型错配

时间:2015-12-01 12:04:25

标签: sql sql-server tsql types

我正在尝试搜索按钮,只需一个搜索栏即可搜索姓氏和用户ID,

componentWillMount() {
    WinJS.Application.addEventListener("backclick", function () {
        document.body.style.background = "red"; //or for example setState/show notification etc...
    });
}

这个问题是,user_id是和int和surname是nvarchard数据类型,所以我搜索用户ID我得到输出,但是当我搜索姓氏时我得到错误 - 将varchar值'nes'转换为数据类型int

时转换失败

任何帮助都是适当的

1 个答案:

答案 0 :(得分:0)

这里的问题是'nes'不是有效数字。 SQL Server不知道如何在整数列中查找此值。

您可以通过将INT字段转换为nVarChar来解决此问题。这是一个example

-- What we are searching for.
DECLARE @SearchFor    NVARCHAR(255) = '1';

-- Use a CTE to create some sample records to search.
WITH SampleData AS
(
    /* Create some sample records.
        */
    SELECT
        r.[User_Id],
        r.Name
    FROM
        (
            VALUES
                (1, 'Tom'),
                (2, 'Dick'),
                (3, 'Harry')
        ) AS r([User_Id], Name)
)
SELECT
    *
FROM
    SampleData
WHERE
    @SearchFor IN (CAST([User_id] AS NVARCHAR(255)), Name)
;