TL; DR Как проверить, является ли строка шестнадцатеричной при выборе строк?Как проверить, являются ли строки VARCHAR шестнадцатеричными?
Если бы я был стол с GUIDs, где некоторые из них являются base36 вместо если шестнадцатеричное:
ID | GUID
===|=================================
1 | CAFEBABECAFED00DB16B00B515BADA55
2 |ABCDEFGHIJKLMNOPQRSTUV
3 | DEADBEAF4D15EA5EDEFEC8EDFEE1DEAD
Я хочу, чтобы все строки с идентификаторами GUID, которые не являются исключительно шестнадцатеричное.
Для одноточечного я могу попробовать CONVERT(VARBINARY(32),[GUID],2)
и посмотреть, не сработает ли он, но я не могу этого сделать в запросе. Если бы я мог запросить WHERE isNaN(parseInt(GUID,16))
, он был бы отказоустойчивым (при этом он должен применяться ко всем строкам).
Конечно, я мог бы найти полный текст письма следующих F (WHERE [GUID] LIKE '%g%' OR [GUID] LIKE '%h%' OR …
), но этот последний курорт такого подхода привел меня к задаю этот вопрос:
Как запросить для (не) шестнадцатеричном только поля?
Пользуется CTE, значимый для реальной идеи? – dakab
@ dakab CTE здесь, чтобы заполнить некоторые данные. –