Поиск nvarchar

У меня есть эта проблема. В таблице у меня есть столбец, который является типом nvarcar. и строка в этом столбце является row1 = 1; 6 row2 = 12 row3 =6; 5; 67 и т.д... Я пытаюсь искать этот столбец. например, когда я отправляю 1, я пытаюсь добраться только row1. Я использую КАК, но в наборе результатов я получаю row1 и row2.

Как может, я достиг этого, какая-либо справка ценится. Tnx...

1
задан Lieven Keersmaekers 26 April 2010 в 11:48
поделиться

3 ответа

Не особо элегантно, но этот выполняет свою работу .

DECLARE @Table TABLE (Row NVARCHAR(32))

INSERT INTO @Table VALUES ('1;6')
INSERT INTO @Table VALUES ('12')
INSERT INTO @Table VALUES ('6;5;67')

SELECT  *
FROM    @Table
WHERE   Row = '1'
        OR Row LIKE '%;1'
        OR Row LIKE '1;%'
        OR Row LIKE '%;1;%'

редактировать

продолжить ваш комментарий: это работает в SQL Server 2005.

CREATE TABLE Analysis (Text1 NVARCHAR(32)) 
GO

CREATE PROCEDURE [dbo].[Test] @Key as nvarchar AS 
SELECT  * 
FROM    dbo.Analysis
WHERE   Text1 = @Key 
        OR Text1 LIKE '%;'+ @Key
        OR Text1 LIKE @Key + ';%' 
        OR Text1 LIKE '%;' + @Key + ';%' 
GO

EXEC Test '1'
DROP PROCEDURE Test
DROP TABLE Analysis
0
ответ дан 3 September 2019 в 01:01
поделиться

У вас есть четыре варианта расположения ключа:

  • Это может быть весь ключ
  • В начале
  • В середине
  • В конце

Следовательно, вы должны выбрать для каждой отдельной возможности, например:

SELECT *
FROM MyTable
WHERE MyColumn = @Key
   OR MyColumn LIKE @Key + ';%'
   OR MyColumn LIKE '%;' + @Key + ';%'
   OR MyColumn LIKE '%;' + @Key
0
ответ дан 3 September 2019 в 01:01
поделиться

нормализуйте ваши таблицы! , сохранение нескольких значений в одном столбце вызовет у вас горе, если вы будете использовать этот дизайн. Может показаться, что таким способом хранить данные проще, но, как вы видите, сложно выполнять запросы к этим данным, а создаваемые вами запросы будут ужасными и не будут иметь никаких шансов на использование индекса.

2
ответ дан 3 September 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: