Использование данных в извлеченной текстовой строке для внутреннего объединения

Вы можете использовать getComputedStyle() .

var element = document.getElementById('image_1'),
    style = window.getComputedStyle(element),
    top = style.getPropertyValue('top');

jsFiddle .

0
задан a_horse_with_no_name 17 January 2019 в 11:36
поделиться

2 ответа

Вот вариант для вас.

Загрузите проанализированные данные во временную таблицу, а затем присоедините ее к таблице поиска. Я был бы легче и, вероятно, выступил бы лучше.

Посмотрите на это. Есть пример с некоторыми тестовыми данными, использующими временные таблицы. Очевидно, что вам нужно будет подстроиться под ваши конкретные таблицы и требования:

--This will be our table that has the data you want to parse
CREATE TABLE #TestData (
TextColumn nvarchar(1000)
)

--lookup table for colours
CREATE TABLE #LookUp(
LookUpIndex INT
,Colour NVARCHAR(100)
)

--Use a temp table to load the parsed data from #TestData
CREATE TABLE #TestDataParse (
LookUpIndex INT
,TextColumn NVARCHAR(1000)
)

--Load our test data
INSERT INTO [#TestData] ([TextColumn])
VALUES('random text dog ''123'' more random text')
,('random text dog ''345'' more random text')
,('random text dog ''723'' more random text')


--populate our lookup table
INSERT INTO [#LookUp] (
                          [LookUpIndex]
                        , [Colour]
                      )
VALUES(123, 'Blue')
,(345, 'Green')
,(723 , 'Orange')


--Now parse the LookUp number out and load that to our temp table
INSERT INTO [#TestDataParse] (
                                 [LookUpIndex]
                               , [TextColumn]
                             )
SELECT
Left(Substring(TextColumn, Patindex('%''%', TextColumn) + 1, Len(TextColumn) - Patindex('%''%', TextColumn))
           ,Patindex('%''%', Substring(TextColumn, Patindex('%''%', TextColumn) + 1, Len(TextColumn) - Patindex('%''%', TextColumn)))- 1) AS LookUpIndex
           ,[TextColumn]
FROM [#TestData]

--Now we can join that back to the lookup table
SELECT     *
FROM       [#TestDataParse] [a]
INNER JOIN [#LookUp] [b]
    ON [b].[LookUpIndex] = [a].[LookUpIndex];


--Example done
--Drop our #temp tables
DROP TABLE [#LookUp]
DROP TABLE [#TestData]
DROP TABLE [#TestDataParse]

или вы можете пропустить загрузку во временную таблицу и использовать подзапрос, чтобы упростить соединение с вашей таблицей поиска, что-то вроде:

SELECT * FROM (
                SELECT
                Left(Substring(TextColumn, Patindex('%''%', TextColumn) + 1, Len(TextColumn) - Patindex('%''%', TextColumn))
                           ,Patindex('%''%', Substring(TextColumn, Patindex('%''%', TextColumn) + 1, Len(TextColumn) - Patindex('%''%', TextColumn)))- 1) AS LookUpIndex
                           ,[TextColumn]
                FROM [#TestData] a
                ) AS tb
INNER JOIN [#LookUp] b ON [b].[LookUpIndex] = [tb].[LookUpIndex]

Я бы проверил каждую из них и посмотрел, какая из них лучше для вас.

0
ответ дан Tim Mylott 17 January 2019 в 11:36
поделиться

Это боль, но вы можете сделать:

select t.col, left(v.dogv, charindex('''', v.dogv) - 1)
from (values ('random text dog ''123'' more random text')) t(col) cross apply
     (values (stuff(col, 1, charindex('dog', col) + 4, ''))
     ) v(dogv) 
where col like '%dog%';
0
ответ дан Gordon Linoff 17 January 2019 в 11:36
поделиться