Avatar of Ernesto
ErnestoFlag for Mexico

asked on 

insert where is not in

hi you experts
how can i achive this query

i mean, insert the element when is not already in


insert into materiales(tag,unidad,descripcion,proveedor,tipmater)
values ( 'HV9900', 'PZA', 'VALVULAS DE CONTROL ON-OFF', 'ADOBE SYSTEMS INCORPORATED', 'INSTRUMENTACION')
where materiales.tag <>'HV9900')

tsm
Microsoft SQL ServerSQL

Avatar of undefined
Last Comment
sameer2010
ASKER CERTIFIED SOLUTION
Avatar of dsacker
dsacker
Flag of United States of America image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of winheim
winheim

One way to do this would be this:

CREATE Table materiales
(
 tag nvarchar(100) , /* unique?*/
 unidad nvarchar(100),
 descripcion nvarchar(255),
 proveedor nvarchar(255),
 tipmater nvarchar(255),
)

/*
* Add anything
*/
INSERT INTO materiales(tag,unidad,descripcion,proveedor,tipmater)
values ( 'HV9900', 'PZA', 'VALVULAS DE CONTROL ON-OFF', 'ADOBE SYSTEMS INCORPORATED', 'INSTRUMENTACION')


/*
* You can use Left Join and a sub query
*/

-- THIS query does not add a new row
insert into materiales(tag,unidad,descripcion,proveedor,tipmater)

SELECT * FROM
(
      SELECT 'HV9900' AS tag, 'PZA' AS unidad, 'VALVULAS DE CONTROL ON-OFF' AS descripcion, 'ADOBE SYSTEMS INCORPORATED' AS proveedor, 'INSTRUMENTACION' AS tipmater      
) to_insert
LEFT JOIN materiales m
ON to_insert.tag = m.tag
WHERE m.tag IS NULL /* if returns NULL then you know that the line you'd like to add is not already present in the table materiales */



-- THIS query adds a new row
insert into materiales(tag,unidad,descripcion,proveedor,tipmater)

SELECT * FROM
(
      SELECT 'HV9901' AS tag, 'PZA' AS unidad, 'VALVULAS DE CONTROL ON-OFF' AS descripcion, 'ADOBE SYSTEMS INCORPORATED' AS proveedor, 'INSTRUMENTACION' AS tipmater      
) to_insert
LEFT JOIN materiales m
ON to_insert.tag = m.tag
WHERE m.tag IS NULL /* if returns NULL then you know that the line you'd like to add is not already present in the table materiales */
Avatar of sameer2010
sameer2010
Flag of India image

You can also use MERGE. This makes code easy to understand
Microsoft SQL Server
Microsoft SQL Server

Microsoft SQL Server is a suite of relational database management system (RDBMS) products providing multi-user database access functionality.SQL Server is available in multiple versions, typically identified by release year, and versions are subdivided into editions to distinguish between product functionality. Component services include integration (SSIS), reporting (SSRS), analysis (SSAS), data quality, master data, T-SQL and performance tuning.

171K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo