SQL Server

【SQL Server】WHERE句では列別名が使用できない。

投稿日:

特に意識はしていなかったのですが、WHERE句では列別名が使用できませんね。

SELECT employee_id as ID, user_name as Name, dept_cd as Dept
FROM emp_list
WHERE ID = ‘100’;

このように、WHERE句で列別名であるIDを使用すると、エラーとなってしまいます。よって、WHERE句には列名である、employee_idを使用しなければなりません。上記のような場合であれば単純に列別名を指定せず、列名を指定すれば良いのですが、次の例の場合は、どうしても列別名を使用したくなります。

SELECT REPLACE(REPLACE(FullPCName, ‘.sql.jpn.org’, ”), SUBSTRING(REPLACE(FullPCName, ‘.sql.jpn.org’, ”), 0, CHARINDEX(’#’, REPLACE(FullPCName, ‘.sql.jpn.org’, ”))+1), ”) as ServerName, operating_system, language
FROM computer_list
WHERE ServerName = ‘server01’

WHERE句に列別名であるServerNameを使用していますが、これではエラーとなってしまいます。よって、次のように記述しなければなりません。

SELECT REPLACE(REPLACE(FullPCName, ‘.sql.jpn.org’, ”), SUBSTRING(REPLACE(FullPCName, ‘.sql.jpn.org’, ”), 0, CHARINDEX(’#’, REPLACE(FullPCName, ‘.sql.jpn.org’, ”))+1), ”) as ServerName, operating_system, language
FROM computer_list
WHERE REPLACE(REPLACE(FullPCName, ‘.sql.jpn.org’, ”), SUBSTRING(REPLACE(FullPCName, ‘.sql.jpn.org’, ”), 0, CHARINDEX(’#’, REPLACE(FullPCName, ‘.sql.jpn.org’, ”))+1), ”) = ‘server01’;

一度ビューなどをかましてからクエリを作成した方が良いかもしれませんね。

広告

広告

-SQL Server


comment

関連記事

no image

リモート接続でSQL Serverのデータベースに接続するには?

問:リモートからSQL Serverのデータベースにアクセスしようとしましたが、アクセスできません。どのようにすれば良いのでしょうか? ? 答:SQL Serverの既定の設定では、ネットワーク経由で …

no image

SQL BPA command line は動作を停止しました。

SQL Server 2005 Express Edition with Advance Servicesに対して、Windows UpdateでSP3を適用しようとしましたが、下記のようなエラーが発 …

no image

システムデータベースとは?

システムデータベースには、SQL Server自身が使用する重要な情報が格納されています。 master ・インスタンスのサーバ設定 ・ユーザ情報 ・システム環境 model ・テンプレート用のデータ …

no image

データベースロールとは?

SQL Serverでアカウントを束ねるコレクション構造をデータベースロールと言い、Windowsで言うとグループみたいなものです。データベースロールにユーザを追加する事で、一括してユーザの権限管理を …

no image

【SQL Server】複数のインスタンスをインストールするには?

1つのサーバに複数のインスタンスを作成する事ができます。複数のインスタンスを作成するには、SQL Serverのインストーラを実行する必要があります。 「名前付きインスタンス」を選択し、追加するインス …

広告

転職