Это, я думаю простая проблема, но не получение решения все же. Я хотел бы получить верные номера только из столбца, как объяснено здесь.
Позволяет говорят, что у нас есть varchar столбец со следующими значениями
ABC
Italy
Apple
234.62
2:234:43:22
France
6435.23
2
Lions
Здесь проблема состоит в том, чтобы выбрать числа только
select * from tbl where answer like '%[0-9]%'
сделал бы это, но это возвращается
234.62
2:234:43:22
6435.23
2
Здесь, очевидно, 2:234:43:22 не желаем, поскольку это не верный номер.
Желаемый результат
234.62
6435.23
2
Существует ли способ сделать это?
Вы можете попробовать это
ISNUMERIC возвращает 1, когда ввод выражение оценивается как допустимое числовой тип данных; иначе это возвращает 0.
DECLARE @Table TABLE(
Col VARCHAR(50)
)
INSERT INTO @Table SELECT 'ABC'
INSERT INTO @Table SELECT 'Italy'
INSERT INTO @Table SELECT 'Apple'
INSERT INTO @Table SELECT '234.62'
INSERT INTO @Table SELECT '2:234:43:22'
INSERT INTO @Table SELECT 'France'
INSERT INTO @Table SELECT '6435.23'
INSERT INTO @Table SELECT '2'
INSERT INTO @Table SELECT 'Lions'
SELECT *
FROM @Table
WHERE ISNUMERIC(Col) = 1
Для включения действительных символов можно использовать только следующие:
SQL
SELECT * FROM @Table
WHERE Col NOT LIKE '%[^0-9.]%'
Results
Col
---------
234.62
6435.23
2
Краткий обзор WSDL4J (это было давно, так как я работал непосредственно с этим проектом) говорит о том, что нет возможности специально предотвратить чтение импортированных схем. Возможно, вы наткнулись на ошибку в механизме десериализации схем WSDL4J. Тем не менее, если вы не заинтересованы в содержимом каких-либо схем, включая те, которые включены в документ WSDL, вы можете зарегистрировать свой собственный реестр расширений (просто измените класс ExecutureExtensionRegistry, чтобы исключить SchemaDeserializer).
В частности, не указывайте следующие строки:
mapExtensionTypes(Types.class, SchemaConstants.Q_ELEM_XSD_1999,
SchemaImpl.class);
registerDeserializer(Types.class, SchemaConstants.Q_ELEM_XSD_1999,
new SchemaDeserializer());
registerSerializer(Types.class, SchemaConstants.Q_ELEM_XSD_1999,
new SchemaSerializer());
mapExtensionTypes(Types.class, SchemaConstants.Q_ELEM_XSD_2000,
SchemaImpl.class);
registerDeserializer(Types.class, SchemaConstants.Q_ELEM_XSD_2000,
new SchemaDeserializer());
registerSerializer(Types.class, SchemaConstants.Q_ELEM_XSD_2000,
new SchemaSerializer());
mapExtensionTypes(Types.class, SchemaConstants.Q_ELEM_XSD_2001,
SchemaImpl.class);
registerDeserializer(Types.class, SchemaConstants.Q_ELEM_XSD_2001,
new SchemaDeserializer());
registerSerializer(Types.class, SchemaConstants.Q_ELEM_XSD_2001,
new SchemaSerializer());
-121--4518759- Как заявили другие, LUA - это довольно быстрый и простой способ встраивания языка сценариев в ваше приложение. Продукт нашей компании имеет макро-функцию, и я кратко интересовался идеей встраивания полной поддержки сценариев как ее части. Но в конечном итоге мы решили, что тренинг будет кошмаром.
Независимо от этого, это довольно хорошее введение во встроенный LUA в c #, если вы выберете этот маршрут: http://blog.apterainc.com/software/embedding-lua-and-c/
-121--3926535-Попробуйте что-то подобное - это работает для упомянутых вами случаев.
select * from tbl
where answer like '%[0-9]%'
and answer not like '%[:]%'
and answer not like '%[A-Z]%'