我怎么能在where语句中使用别名.
示例:
SELECT SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) AS Col1
FROM MyTable
WHERE Col1 = 'MySearch'
Run Code Online (Sandbox Code Playgroud)
我使用MSSQL 2005
arn*_*lem 53
您可以使用"having"而不是"where".
SELECT
SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) AS Col1
FROM
MyTable
HAVING
Col1 = 'MySearch'
Run Code Online (Sandbox Code Playgroud)
在执行查询后执行"where".小心在合适的条件下使用它,以避免性能问题.
Dav*_*unt 20
不可能,但您可以执行以下操作:
SELECT SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) AS Col1
FROM MyTable
WHERE SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) = 'MySearch'
Run Code Online (Sandbox Code Playgroud)
不需要子查询或黑客攻击
cgp*_*cgp 19
使用子查询:
SELECT *
FROM
(SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) AS Col1 FROM MyTable)
WHERE Col1 = 'MySearch'
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
SELECT Col1
FROM ( SELECT SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) AS Col1 ) AS x
WHERE Col1 = 'MySearch'
Run Code Online (Sandbox Code Playgroud)
SELECT * FROM (
SELECT SUBSTRING(Column1, 1, 4) + SUBSTRING(Column1, 4, 3) AS Col1
FROM MyTable
)
WHERE Col1 = 'MySearch'
Run Code Online (Sandbox Code Playgroud)
(我知道这在Oracle中有效,我相信它是标准的SQL,可以在MSSQL中使用.)