我在视图里面加入这个查询,select dbo.match(tabname.columnname) from tabname。dbo.match(str)是自定义函数,它把tabname.columnname处理后作为字符串返回,但是这样查出来的就是处理后的字符串,而不是tabname.columnname的值。所以想问一下有没有方法把字符串转换成数据库SQL语句格式,使其查出来的是tabname.columnname的值。
to paoluo(一天到晚游泳的鱼) : 加了個別名“As columnname ”,這樣你就可以用到columnname 這一列了。但是查出来的还是字符串,而不是我想得到的值。可能我说得不是很清楚,我的查询本来是这样的select tabname.columnname1+tabname.columnname2 as 名称 from tabname,如果columnname1和columnname2有一个是null,那么加出来的结果就是null,所以我写了个函数来处理这个公式,使它返回这样的结果isnull(tabname.columnname1,0)+isnull(tabname.columnname2,0),但是返回的是字符串,查询出来的结果就是字符串‘isnull(tabname.columnname1,0)+isnull(tabname.columnname2,0)’,而不是我想得到的两值相加的结果。
直接這樣不就可以,為什麼還要寫個函數那麼麻煩select IsNull(tabname.columnname1, 0) + IsNull(tabname.columnname2, 0) as 名称 from tabname
select dbo.match(tabname.columnname) As columnname1,columnname from tabname这样还是查不出我处理后想要的效果。
select dbo.match(tabname.columnname) As columnname from tabname这个语句跟我那个语句好像没有什么区别吧?只是可以看到columnname的名称。
--------------加了個別名“As columnname ”,這樣你就可以用到columnname 這一列了。
加了個別名“As columnname ”,這樣你就可以用到columnname 這一列了。但是查出来的还是字符串,而不是我想得到的值。可能我说得不是很清楚,我的查询本来是这样的select tabname.columnname1+tabname.columnname2 as 名称 from tabname,如果columnname1和columnname2有一个是null,那么加出来的结果就是null,所以我写了个函数来处理这个公式,使它返回这样的结果isnull(tabname.columnname1,0)+isnull(tabname.columnname2,0),但是返回的是字符串,查询出来的结果就是字符串‘isnull(tabname.columnname1,0)+isnull(tabname.columnname2,0)’,而不是我想得到的两值相加的结果。
我的函数只是处理字符串,没有涉及值的问题。
@p1 numeric(18,4),@p2 numeric(18,4)
)
returns numeric(18,4)
as
begin
return isnull(@p1,0)+isnull(@p2,0)
end
go