我有一个这样的存储过程:
ALTER procedure [dbo].[fetchkey]
@carid nvarchar(50) =null
as
begin
select t.TBarcode, t.Status
from Transaction_tbl t
where t.TBarcode=@carid
end
我的输出:
TBarcode Status
57173621345 3
我想得到这样的输出:
TBarcode location Status
-----------------------------------------
57173621345 deliverd 3
我需要位置列才能显示始终只发送。 那我该怎么做呢?我需要使用某个功能还是有任何简单的方法?
答案 0 :(得分:2)
将SP中的选择更改为
select t.TBarcode,
'delivered' location,
t.Status
from Transaction_tbl t
where t.TBarcode=@carid
来自SELECT Clause (Transact-SQL)
您可以看到语法如下
SELECT [ ALL | DISTINCT ]
[ TOP ( expression ) [ PERCENT ] [ WITH TIES ] ]
<select_list>
<select_list> ::=
{
*
| { table_name | view_name | table_alias }.*
| {
[ { table_name | view_name | table_alias }. ]
{ column_name | $IDENTITY | $ROWGUID }
| udt_column_name [ { . | :: } { { property_name | field_name }
| method_name ( argument [ ,...n] ) } ]
| expression
[ [ AS ] column_alias ]
}
| column_alias = expression
} [ ,...n ]
上述表达式定义为
是常量,函数,列名,常量的任意组合, 和由运算符或运算符或子查询连接的函数。
答案 1 :(得分:0)
试试这个 -
ALTER PROCEDURE [dbo].[fetchkey]
@carid NVARCHAR(50) = NULL
AS BEGIN
SELECT
t.TBarcode
, Location = 'delivered'
, t.[status]
FROM dbo.Transaction_tbl t
WHERE t.TBarcode = ISNULL(@carid, T.TBarcode)
END