code: func (s *ShowTagValuesCardinalityStatement) String() string {
  	var buf bytes.Buffer
  	_, _ = buf.WriteString("SHOW TAG VALUES ")
  	if s.Exact {
  		_, _ = buf.WriteString("EXACT ")
  	}
  	_, _ = buf.WriteString("CARDINALITY")
  
  	if s.Database != "" {
  		_, _ = buf.WriteString(" ON ")
  		_, _ = buf.WriteString(QuoteIdent(s.Database))
  	}
  	if s.Sources != nil {
  		_, _ = buf.WriteString(" FROM ")
  		_, _ = buf.WriteString(s.Sources.String())
  	}
  	_, _ = buf.WriteString(" WITH KEY ")
  	_, _ = buf.WriteString(s.Op.String())
  	_, _ = buf.WriteString(" ")
  	if lit, ok := s.TagKeyExpr.(*StringLiteral); ok {
  		_, _ = buf.WriteString(QuoteIdent(lit.Val))
  	} else {
  		_, _ = buf.WriteString(s.TagKeyExpr.String())
  	}
  	if s.Condition != nil {
  		_, _ = buf.WriteString(" WHERE ")
  		_, _ = buf.WriteString(s.Condition.String())
  	}
  	if len(s.Dimensions) > 0 {
  		_, _ = buf.WriteString(" GROUP BY ")
  		_, _ = buf.WriteString(s.Dimensions.String())
  	}
  	if s.Limit > 0 {
  		_, _ = fmt.Fprintf(&buf, " LIMIT %d", s.Limit)
  	}
  	if s.Offset > 0 {
  		_, _ = buf.WriteString(" OFFSET ")
  		_, _ = buf.WriteString(strconv.Itoa(s.Offset))
  	}
  	return buf.String()
  }
docs: // String returns a string representation of the statement.