请高手帮忙看看一句SQL

tatty_bad 2007-07-25 03:11:50
Select Sa As a,Sb As b,c='0',d='0' From Lista Where SId = 1 Union All Select Ta As a,Tb As b,Tc As c,Td As d From Listb Where TId = 1 Order By e asc

这句话问题就出在Td上,两句分别运行,都是正确的,但是放在一起,就是不行

在Listb里面Td的类型是money,在Lista里面没有这个字段,所以我默认成了d=0

可是就是不能通过?

是类型不一样的原因么??请高手帮我看看。。谢谢了。
...全文
127 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tatty_bad 2007-07-25
  • 打赏
  • 举报
回复
唉,是我自己晕了.

把自己给搞进去了...

谢谢大家了...

散分....
昵称被占用了 2007-07-25
  • 打赏
  • 举报
回复
union all如果有些字段用常量

要么把常量的查询不写到第一个select
要么把第一个 select中的常量显式强制转换
昵称被占用了 2007-07-25
  • 打赏
  • 举报
回复
or:

Select Ta As a,Tb As b,Tc As c,Td As d From Listb Where TId = 1
Union All
Select Sa As a,Sb As b,c='0',d=0 From Lista Where SId = 1



--Order By e asc 这里有问题


云中客 2007-07-25
  • 打赏
  • 举报
回复
d='0'此时的d是字符类型
d=0此时的d为数值类型

bqb 2007-07-25
  • 打赏
  • 举报
回复
把類型改成一樣的再試試~

Select Sa As a,Sb As b,0.00 as c ,0.00 as d From Lista Where SId = 1 Union All Select Ta As a,Tb As b,Tc As c,Td As d From Listb Where TId = 1 Order By e asc
昵称被占用了 2007-07-25
  • 打赏
  • 举报
回复
Select Sa As a,Sb As b,c='0',d=cast(0 as money) From Lista Where SId = 1 Union All Select Ta As a,Tb As b,Tc As c,Td As d From Listb Where TId = 1 Order By e asc
云中客 2007-07-25
  • 打赏
  • 举报
回复
Select Sa As a,Sb As b,c='0',d=0 From Lista Where SId = 1 Union All Select Ta As a,Tb As b,Tc As c,Td As d From Listb Where TId = 1 Order By e asc
云中客 2007-07-25
  • 打赏
  • 举报
回复
把d='0'修改为d=0

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧