Sql 搜索按钮,数据类型不匹配
我正在尝试做一个搜索按钮,它可以从一个搜索栏中搜索姓氏和用户idSql 搜索按钮,数据类型不匹配,sql,sql-server,tsql,types,Sql,Sql Server,Tsql,Types,我正在尝试做一个搜索按钮,它可以从一个搜索栏中搜索姓氏和用户id SELECT user_id, Title, FirstName, Surname, Address, PostCode, PhoneNumber from [User] WHERE (Not (user_id)=100003) and (user_id= '$ID' or Surname ='ID') order by user_id 这个问题是,user_id为,int,姓氏为nvarchard数据类型,我搜索
SELECT user_id, Title, FirstName, Surname, Address, PostCode, PhoneNumber
from [User]
WHERE (Not (user_id)=100003)
and (user_id= '$ID' or Surname ='ID')
order by user_id
这个问题是,user_id为,int,姓氏为nvarchard数据类型,我搜索user id时得到输出,但搜索姓氏时得到错误-
将varchar值“nes”转换为数据类型int时,转换失败
任何帮助都将被告知这里的问题是“nes”不是有效数字。SQL Server不知道如何在整数列中查找此值 您可以通过将INT字段转换为nVarChar来解决这个问题。这是一个:
应该加上,;其工作原理是将1、2和3转换为“1”、“2”和“3”。虽然它们看起来像数字,但它们不是。它们现在是文本,可以与其他文本值(如“nes”)进行比较。
-- 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)
;