รับค่าคงที่สำหรับการเลือก


13

ฉันจำเป็นต้องทำSELECTแบบสอบถามที่ฉันได้รับค่าของฟิลด์ "เงิน" ฟิลด์นี้ไม่มีอยู่จริงในฐานข้อมูล ฉันต้องการคิวรีเพื่อส่งคืนฟิลด์นี้ด้วยค่าคงที่ ในกรณีนี้ค่าเป็น USD

ฉันจะคืนค่าคงที่ในSELECTคำสั่งได้อย่างไร


ที่เกี่ยวข้อง: stackoverflow.com/q/2504163/1469208
trejder

คำตอบ:


21

หากค่าเป็นไปได้เสมอคุณสามารถทำสิ่งนี้:

SELECT 'USD' AS `MONEY`, a.*
  FROM INFORMATION_SCHEMA.SCHEMATA AS a

เพียงแค่แทนที่. * ด้วยคอลัมน์ที่คุณต้องการส่งคืนและ INFORMATION_SCHEMA.SCHEMATA ด้วยสคีมาและตารางที่คุณต้องการสอบถาม

ฉันหวังว่านี่จะเป็นประโยชน์กับคุณ


ขอบคุณมาก. ทำงานเหมือนจับใจ แค่สงสัย. 'AS a' (หลังจาก 'FROM INFORMATION_SCHEMA.SCHEMATA' สุดท้าย) คืออะไร
fedejp

ไม่มีปัญหาเลย. AS ระบุนามแฝงสำหรับตารางเป็นชื่อย่อที่คุณสามารถอ้างอิงตารางได้
Mr.Brownstone

โอ้เยี่ยมมาก ฉันไม่ได้ว่าคุณสามารถใช้นามแฝงสำหรับตาราง ขอบคุณมาก!
fedejp

0

@fedejp คุณไม่ต้องแทรก 'AS' คุณสามารถเขียน 'INFORMATION_SCHEMA.SCHEMATA a' เพราะเข้าใจว่า 'AS'

และหากมีเพียงหนึ่งตารางในแบบสอบถาม (ไม่มีการรวม) คุณไม่จำเป็นต้องใช้นามแฝงและไม่มีฟิลด์ใด ๆ ที่ระบุว่าต้องการ 'a' หน้าชื่อฟิลด์เนื่องจากไม่มีความสับสนเกี่ยวกับตารางที่มาจากทุกฟิลด์

ดังนั้นคุณสามารถเขียน:

SELECT 'USD' AS `MONEY`, * FROM INFORMATION_SCHEMA.SCHEMATA;

ยังใช้นามแฝงแม้ตารางเดียวให้คุณเลือกที่จะพิมพ์ 'a' ในรายการที่เลือก (ในกรณีของนามแฝง 'a') และเห็นคอลัมน์ตารางทั้งหมดในรายการแบบเลื่อนลง ฉันคิดว่ามันปลอดภัยที่จะบอกว่านักพัฒนา SQL ทุกคนที่มีประสบการณ์การทำงานนั้นมักจะใช้ชื่อแทนตารางของพวกเขาอยู่เสมอ ที่เดียวที่ฉันไม่ใช้นามแฝงคือเมื่อให้คอลัมน์เป็นค่าผลลัพธ์ของแบบสอบถามย่อย จากนั้นฉันจะใช้นามแฝงของตารางในตัวเลือกหลัก แต่ไม่ใช่ชื่อแทนในแบบสอบถามย่อยดังนั้นคุณสามารถแยกความแตกต่างระหว่างเขตข้อมูลของแบบสอบถามย่อยและเขตข้อมูลแบบสอบถามหลักได้อย่างรวดเร็ว
Mashchax
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.