我有一个带UNION子句的查询。其中一个字段是普通的硬编码字符串。 UNION之后的语句中的字符串被截断以匹配UNION之前的字段的字符串长度。 听起来很混乱?这是一个例子。
SELECT 'abc' as xxx
FROM tbl1
UNION ALL
select 'defghi' as xxx
FROM tbl2;
对于上面的查询,我希望输出为
abc
defghi
然而,输出是
abc
def
有什么想法?
编辑: 我知道当前的解决方法是在UNION之前出现带有较长字符串的SELECT语句。即
SELECT 'defghi' as xxx
FROM tbl2
UNION ALL
select 'abc' as xxx
FROM tbl1;
这会给我预期的输出。但是有更好的选择吗?
答案 0 :(得分:9)
采用第一种数据类型,但在这种情况下你可以将它转换为所需的数据类型,如char(6),否则列将保持为char(3)
SELECT CAST('abc' as char(6)) as xxx
FROM tbl1
UNION ALL
select 'defghi' as xxx
FROM tbl2;
答案 1 :(得分:0)
最简单的解决方案是设置第一行的数据类型。
#!/bin/bash
nohup python learn.py >> file.log &