当前位置: 代码迷 >> Sql Server >> SQL 取别名后怎么使用
  详细解决方案

SQL 取别名后怎么使用

热度:54   发布时间:2016-04-24 18:23:53.0
SQL 取别名后如何使用
ID                     spec                                    unitWeight                   
01                200*300/10m                             100
02                300*400/6m                                110
03                700*800/12m                               200



现在想得到如下结果:
 ID                     spec                                Len                 totleWeight (=unitWeight *Len)                 
01                  200*300                            10                     1000
02                  300*400                              6                      660
03                  700*800                             12                    2400
请问SQL语句如何写?
(我自己写的语句为字段取了个别名,但是后面想使用这个别的时候使用不了。语句我就不贴了)


------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(发粪涂墙)
-- Date    :2014-03-17 15:10:22
-- Version:
--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
-- Apr  2 2010 15:48:46 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([ID] nvarchar(4),[spec] nvarchar(22),[unitWeight] int)
insert [huang]
select '01','200*300/10m',100 union all
select '02','300*400/6m',110 union all
select '03','700*800/12m',200
--------------生成数据--------------------------

select id,SUBSTRING([spec],1,PATINDEX('%/%',[spec])-1) [spec],[len]=SUBSTRING([spec],PATINDEX('%/%',[spec])+1,PATINDEX('%m%',[spec])-PATINDEX('%/%',[spec])-1),totleWeight =[unitWeight]*CAST(SUBSTRING([spec],PATINDEX('%/%',[spec])+1,PATINDEX('%m%',[spec])-PATINDEX('%/%',[spec])-1) AS INT)
from [huang]
----------------结果----------------------------
/* 
id   spec                   len                    totleWeight
---- ---------------------- ---------------------- -----------
01   200*300                10                     1000
02   300*400                6                      660
03   700*800                12                     2400
  相关解决方案