on creating of sp, using the char index, i am getting error as
CREATE TABLE [dbo].[TempTable](
[ID] [int] NOT NULL,
[Name] [nvarchar](128) NULL,
[ProductCategory] [nvarchar](64) NULL )
INSERT INTO TempTable VALUES (1,'Car','Road - Personal')
INSERT INTO TempTable VALUES (1,'Bus','Road - Public')
INSERT INTO TempTable VALUES (1,'Boat','Sea - Personal')
INSERT INTO TempTable VALUES (1,'Ship','Sea - Public')
INSERT INTO TempTable VALUES (1,'Plan','Air - Public')
-- select * from TempTable
--exec [spTemp] 1
CREATE PROCEDURE [dbo].[spTemp]
@ID INT
AS
BEGIN
DECLARE @SQLQuery AS VARCHAR(MAX)
SELECT @SQLQuery = 'SELECT [ID],[Name], [ProductCategory] from [TempTable]
WHERE ID = ' + CAST(@ID AS VARCHAR(10)) + ' AND LEFT(ProductCategory , CHARINDEX(' - ',ProductCategory ) - 1) IN (''Road'',''Sea'')'
PRINT (@SQLQuery)
--EXEC (@SQLQuery)
END
/*
Error
Msg 8117, Level 16, State 1, Procedure spTemp, Line 9
Operand data type varchar is invalid for subtract operator.
*/Error
Msg 8117, Level 16, State 1, Procedure spTemp, Line 9
Operand data type varchar is invalid for subtract operator.
Kindly suggest what to change in my query to get the sp value expected
ShanmugaRaj