我有2个表,#include <map>
#include <string>
#include <type_traits>
template <
class SubClass,
typename EnumType,
bool fastStringConvert = true
>
class SmartEnum
{
public:
template <
typename SFINAEPostponer = EnumType,
typename = typename std::enable_if<fastStringConvert, void>::type
>
explicit operator const std::string&() const
{
auto name = SubClass::names().find((int)value);
if (name != SubClass::names().end())
{
return name->second;
}
else
{
static const std::string na("n.a.");
return na;
}
}
template <
typename SFINAEPostponer = EnumType,
typename = typename std::enable_if<!fastStringConvert, void>::type
>
explicit operator const std::string() const
{
auto name = SubClass::names().find((int)value);
if (name != SubClass::names().end()) return name->second;
else return std::to_string((int)value);
}
protected:
typedef const std::map<int, std::string> Names;
EnumType value;
};
enum class Foo_type : int { a, b, c };
struct Foo : SmartEnum<Foo, Foo_type, true>
{
typedef SmartEnum<Foo, Foo_type, true> Base;
static const Base::Names &names()
{
static const Base::Names names = { { 0, "a" }, { 1, "b" }, { 2,"c" }};
return names;
}
};
和catalog
。
我需要选择一个表中存在的seriesTitle
实例,而不是另一个表中的实例,如下所示:
SERIES_CODE
查询成功执行,并返回结果。
然而,结果不完整。我100%肯定SELECT SERIES_CODE
FROM catalog
WHERE SERIES_CODE NOT IN
(SELECT SERIES_CODE
FROM seriesTitle)
中存在一些SERIES_CODE
,但不是catalog
。
我已经检查过seriesTitle
的类型和整理在两个表中是相同的。
是否可能存在一些数据损坏或上述简单查询以外的其他问题?或者也许我的查询错了? (我现在不担心表现,只是结果!)