2016-09-21 3 views
-1

У меня есть следующий SQL-запрос, запущенный в одном из моих проектов. Я изо всех сил пытаюсь понять концепцию «как». В результате «user_key» и «user_all» отображаются пустыми. Где, как на переднем конце "user_all" является сочетание "rx.ord_by_userid" + "rx.ord_by_inst_id"SQL-запрос с ключевым словом «as»

SELECT rx.rx_id, 
rx.pt_visit_id, 
rx.pt_id, 
pt_visit.date_time_sch, 
' ' as print_dea_ind, 
' ' as phys_rx_label, 
rx.ord_by_userid, 
rx.ord_by_inst_id, 
'             ' as user_key, 
pt_visit.visit_inst_id, 
'             ' as user_all, 
' ' as tp_agt_ind, 
FROM rx LEFT OUTER JOIN tx_pln ON rx.tp_name = tx_pln.tp_name AND rx.tp_vers_no = tx_pln.tp_vers_no, pt_visit 
WHERE (pt_visit.pt_visit_id = rx.pt_visit_id) and 
(pt_visit.pt_id = rx.pt_id) and 
((rx.pt_id = :pt_id) and 
(rx.rx_id = :rx_id)) 

Спасибо.

+0

http://www.w3schools.com/sql/sql_alias.asp –

+0

В нижнем столбце есть ответы на ваш вопрос. [Какова цель ключевого слова SQL «AS»?] (Http://stackoverflow.com/questions/4164653/whats-the-purpose-of-sql-keyword-as) – arun

+0

Я знаю концепцию псевдонима. Но я не понял, почему они пытаются представить '' как user_key – user3022426

ответ

0

Я думаю, что когда они запрашивают базу данных, им нужны два поля с именем «user_key» и «user_all» с пустым значением для какой-либо цели. Однако в интерфейсе им необходимо отобразить столбец «user_all» с комбинацией «rx.ord_by_userid» + «rx.ord_by_inst_id» из-за бизнес-правила. Значение «AS» просто устанавливает псевдоним любого поля, для которого требуется новое имя. В этой ситуации новые столбцы «user_key» и «user_all» устанавливаются с пустым значением.

0

AS просто предоставляет поле в наборе данных имя или термины SQL, псевдоним. В PB это обычно делается так, что DataWindow дает ему последовательное, простое имя. То есть все это AS делает.

Другая часть вашей тайны - это то, как они заполняются непустыми значениями. Вы предполагали, что это было сделано в SQL с AS, но мы можем заверить вас, что это не так. Скорее всего, это значение устанавливается в сценарии, который запускается в клиенте после Retrieve() (если бы я сделал ставку, я бы поставил скрипт в элементе управления DataWindow, возможно, RetrieveRow или RetrieveEnd).

Смежные вопросы