Solved

SQL server express update query

Posted on 2016-07-17
6
42 Views
Last Modified: 2016-07-18
I have a query just to show 1 client code as a demo. I would like to update the [strshort] column to be populated like this:

any words not in the TblWordTags to be used in the creation of the short string:

here
word 1= "A3"
word 2 ignore as it is in TblWordTags
Word 3 = Sport

query must update StrShort in this example to A3 + chr32() + Sport

The order of the rebuilt short string goes in same order just minus the words we dont want.

I am in a vb.net windows application pulling data from Sql server db Dictionary. I am not sure how to create this query, can it be done soley in sql server and then run as a stored procedure or do I need to pull the data in and create a function to do it?
. I only need to do the operation for clientcodes that have tagged words in TblTagWords.
EE.JPG
0
Comment
Question by:PeterBaileyUk
  • 4
  • 2
6 Comments
 
LVL 32

Expert Comment

by:Stefan Hoffmann
Comment Utility
First of all: You're talking about order of words, but your sample does not provide information about this order. Much worse it does not even has an criteria, which can be used for ordering.

So you may use something like

DECLARE @StopWords TABLE
    (
      StopWordText NVARCHAR(255) NOT NULL
                                 PRIMARY KEY
    );

INSERT  INTO @StopWords
VALUES  ( N'and' );

DECLARE @Words TABLE
    (
      WordText NVARCHAR(255) NOT NULL ,
      SentenceID INT NOT NULL
    );

INSERT  INTO @Words
VALUES  ( N'A3', 1 ),
        ( N'and', 1 ),
        ( N'Sport', 1 ),
        ( N'Cookies', 2 ),
        ( N'and', 2 ),
        ( N'Tea', 2 );

WITH    Filtered
          AS ( SELECT   W.WordText ,
                        W.SentenceID
               FROM     @Words W
                        LEFT JOIN @StopWords SW ON W.WordText = SW.StopWordText
               WHERE    SW.StopWordText IS NULL
             )
    SELECT  O.SentenceID ,
            RTRIM(( SELECT  I.WordText + ' '
                    FROM    Filtered I
                    WHERE   I.SentenceID = O.SentenceID
                  FOR
                    XML PATH('')
                  )) AS ConcatWordText
    FROM    Filtered O
    GROUP BY O.SentenceID;

Open in new window

0
 

Author Comment

by:PeterBaileyUk
Comment Utility
It did have a word position field called [wordposition] its in the scan the EE.jpg
0
 

Author Comment

by:PeterBaileyUk
Comment Utility
does that change the solution example now?
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 32

Accepted Solution

by:
Stefan Hoffmann earned 500 total points
Comment Utility
Please, include table DDL and sample data INSERT statements as runnable T-SQL script to your posts.

Just use it as order criteria in the concat-subquery..

WITH    Filtered
          AS ( SELECT   W.WordText ,
                        W.SentenceID
               FROM     @Words W
                        LEFT JOIN @StopWords SW ON W.WordText = SW.StopWordText
               WHERE    SW.StopWordText IS NULL
             )
    SELECT  O.SentenceID ,
            RTRIM(( SELECT  I.WordText + ' '
                    FROM    Filtered I
                    WHERE   I.SentenceID = O.SentenceID
                    ORDER BY wordposition
                    FOR XML PATH('')
                  )) AS ConcatWordText
    FROM    Filtered O
    GROUP BY O.SentenceID;

Open in new window


p.s. a question about coding (text) and a image. Doesn't ring that a bell? Do you really think that we open an image and copy then your code manually?
0
 

Author Comment

by:PeterBaileyUk
Comment Utility
apologies I am a beginner at the sql server stuff and berating me publicly seems a tad unkind but well that's in-experience for you. The image was there For info and not meant too offend. I will endeavor in future to add the items you said.
0
 

Author Closing Comment

by:PeterBaileyUk
Comment Utility
thank you very much
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

In this article—a derivative of my DaytaBase.org blog post (http://daytabase.org/2011/06/18/what-week-is-it/)—I will explore a few different perspectives on which week today's date falls within using Microsoft SQL Server. First, to frame this stu…
Ever wondered why sometimes your SQL Server is slow or unresponsive with connections spiking up but by the time you go in, all is well? The following article will show you how to install and configure a SQL job that will send you email alerts includ…
Via a live example, show how to extract information from SQL Server on Database, Connection and Server properties
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now