我正在尝试在我的应用程序中使用我的数据库来搜索电话号码。我已经进入“搜索标准生成器”屏幕,但我似乎无法正确查询。
这是我试过的查询,当我得到“从nvarchar转换为数字”错误时:
SELECT phoneNumber, serviceDate, firstName, lastName, billingAddress, emailAddress, vehicleMake, vehicleModel, vehicleYear, vehicleColor, vehicleMileage
FROM [Table]
WHERE (phoneNumber LIKE @phoneNumber + N'%')
这是创建的表格:
CREATE TABLE [dbo].[Table] (
[phoneNumber] NUMERIC (18) NOT NULL,
[serviceDate] DATE NULL,
[firstName] NCHAR (10) NULL,
[lastName] NCHAR (10) NULL,
[billingAddress] NVARCHAR (50) NULL,
[emailAddress] NVARCHAR (50) NULL,
[vehicleMake] NCHAR (10) NULL,
[vehicleModel] NCHAR (10) NULL,
[vehicleYear] INT NULL,
[vehicleColor] NCHAR (10) NULL,
[vehicleMileage] INT NULL,
CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED ([phoneNumber] ASC)
);
如果需要VB代码,我也会提供它。
答案 0 :(得分:0)
如果您要将手机“数字”视为字符串,为什么要将它们存储为数字?你可以这样做:
WHERE CONVERT(VARCHAR(32), phoneNumber) LIKE @phonenumber + '%';
(另请注意,这里不需要Unicode - 变音符号没有数字。)
但最好更改IMHO列的数据类型。