Как получить детей строки в соответствии с точкой - PullRequest
1 голос
/ 04 октября 2011

У меня есть следующие номера кодов:

1
1.1
1.2
1.3
.
.
.
1.1.1
1.1.2
.
.
.
2

И так ..

Я хочу метод, который анализирует дочерние элементы на основе некоторого ввода.Например, если входное значение равно 1, тогда оно получит все свои дочерние элементы, а если введенное значение будет 1.1, то будет извлечено все его дочерние элементы и т. Д.

Как я могу сделать что-то подобное?

Примечания:

  • Эти данные хранятся в одной таблице в базе данных Informix.
  • Кодовые числа являются строками.

Ответы [ 4 ]

5 голосов
/ 04 октября 2011

Код

var list = new List<string>();
var children = list.Where(s => s.StartsWith(inputString));

DB

DECLARE @p1 varchar(100)
SET @p1 = '1.1%'
SELECT * FROM tbl WHERE tbl.col LIKE @p1
2 голосов
/ 04 октября 2011
SELECT ...
FROM yourtable
WHERE codestring LIKE '1.1%';

должен сделать трюк.

1 голос
/ 05 октября 2011

Просто чтобы отличаться - используйте SUBSTR и т. Д. Вместо LIKE:

SELECT *
  FROM AnonymousTable
 WHERE SUBSTR(CodeNumbers, 1, LENGTH(<xxx>)) = <xxx>;

Где запись <xxx> указывает, где вы размещаете аргумент.Для этого существуют различные обозначения, в зависимости от того, как именно обрабатывается SQL.Единственным недостатком является то, что требуется две ссылки на одно и то же значение параметра.

1 голос
/ 04 октября 2011

Разве простой SQL-запрос не решит ее?

что-то вроде

SELECT * from the_table where column matches "input*"?
...